基于单元格值代码的 Excel vba 复制和粘贴不起作用

杜布兹迈斯特

所以我对 VBA 编码很陌生,我正在尝试设置一个命令按钮,当激活时,它会将所有内容从“Opties”表复制到 D 和 F 列中的“BOM”表,其中列中有 1,标题为“Totaal” ”并删除空格。

到目前为止,这是我的代码

Sub Copy()
Dim c As Integer
Dim x As Integer
Dim y As Integer
Dim ws1 As Worksheet: Set ws1 = Sheets("Optie")
Dim ws2 As Worksheet: Set ws2 = Sheets("BOM")
Dim colNum As Integer

colNum = Worksheetfuntion.Match("Totaal", ws1.Range("A1:ZZ1"), 0)
c = 1
x = -4 + colNum
y = -6 + colNum
Set rng1 = ws1.Column(colNum)
Set rng2 = ws2.Range("C5:C25000")

For Each c In ws1.rng1

rng1.Offset(0, x).Copy
rng2.Offset(0, 1).PasteSpecial xlPasteValues
rng1.Offset(0, y).Copy
rng2.Offset(0, 2).PasteSpecial xlPasteValues


Next c
End Sub
YoE3K

我认为以下代码应该有效:

'Try to avoid using names that Excel uses - you will sometimes "block" the
'native function, so call the subroutine "myCopy" or something else, but
'preferably not "Copy"
Sub myCopy()
    Dim r1 As Long ' Use Long rather than Integer, because Excel
    Dim r2 As Long ' now allows for more than 65536 rows
    'Use Worksheets collection for worksheets, and only use the Sheets
    ' collection if you need to process Charts as well as Worksheets
    Dim ws1 As Worksheet: Set ws1 = Worksheets("Optie") 'Should this be "Opties"?
    Dim ws2 As Worksheet: Set ws2 = Worksheets("BOM")
    Dim colNum As Long

    colNum = WorksheetFunction.Match("Totaal", ws1.Range("A1:ZZ1"), 0)
    r2 = 5 ' I guessed that 5 is the first row you want to write to

    'Loop through every row until the last non-empty row in Totaal column
    For r1 = 1 To ws1.Cells(ws1.Rows.Count, colNum).End(xlUp).Row
        'See if value in Totaal column is 1
        If ws1.Cells(r1, colNum).Value = 1 Then
            'I have guessed that your destination columns are D & E based on 
            'your Offset(0, 1) and Offset(0, 2) from column C
            'I have guessed that your source columns are F & D based on the
            'question mentioning those columns, and the offsets of -4 and -6
            'in your current code - I assume based on "Totaal" being column J
            'Change my guesses as necessary

            'Copy values to destination from source
            ws2.Cells(r2, "D").Value = ws1.Cells(r1, "F").Value
            ws2.Cells(r2, "E").Value = ws1.Cells(r1, "D").Value
            'Increment row counter for destination sheet
            r2 = r2 + 1
        End If
    Next
End Sub

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

VBA复制和粘贴方法不起作用

来自分类Dev

Excel VBA重现单元格的值

来自分类Dev

Excel VBA形状粘贴不起作用

来自分类Dev

粘贴链接VBA代码不起作用

来自分类Dev

VBA Excel单元格值是“ not” NULL

来自分类Dev

Excel VBA:基于单元格值的颜色范围

来自分类Dev

在Excel VBA中复制和粘贴单元格值:编译和运行时错误

来自分类Dev

Excel VBA代码不起作用

来自分类Dev

Excel VBA-如何基于两个单元格值添加行数并从第三个单元格复制/保留数据?

来自分类Dev

VBA复制和粘贴方法不起作用

来自分类Dev

单元格引用在Excel VBA中不起作用

来自分类Dev

Excel VBA-如果单元格值满足条件,则在工作表之间复制单元格

来自分类Dev

Excel VBA:复制增量单元格值

来自分类Dev

Excel VBA复制单元格值,如果> 0到左侧的单元格

来自分类Dev

VBA Excel单元格值是“ not” NULL

来自分类Dev

VBA Excel-复制单元格值并将值粘贴在另一个单元格的字符之间

来自分类Dev

excel vba-添加表列的日期基于包括日期和时间的相邻单元格

来自分类Dev

Excel-VBA循环-从单元格复制公式,粘贴到单元格中,然后复制特殊粘贴

来自分类Dev

Excel VBA在列中重复复制和粘贴一系列单元格

来自分类Dev

Excel中的VBA代码以基于两个条件选择单元格

来自分类Dev

基于多个单元格和值的 Excel 条件格式

来自分类Dev

尝试使用vba在excel中显示单元格的旧值和新值

来自分类Dev

比较工作表的单元格数据在 Excel VBA 中不起作用

来自分类Dev

Excel VBA:将单元格文本剪切并粘贴到上方,如果单元格值向左= 0

来自分类Dev

基于Excel VBA中单元格颜色的值计算

来自分类Dev

VBA - 根据另一个单元格的值填充单元格值(代码不起作用)

来自分类Dev

VBA:将 Visual Studio 代码链接到 Excel 输入单元格和输出表

来自分类Dev

Excel VBA - 根据单独的范围值复制非空白单元格值

来自分类Dev

从 Excel 2016 VBA 中的单元格范围中删除底部边框 - 不起作用?

Related 相关文章

  1. 1

    VBA复制和粘贴方法不起作用

  2. 2

    Excel VBA重现单元格的值

  3. 3

    Excel VBA形状粘贴不起作用

  4. 4

    粘贴链接VBA代码不起作用

  5. 5

    VBA Excel单元格值是“ not” NULL

  6. 6

    Excel VBA:基于单元格值的颜色范围

  7. 7

    在Excel VBA中复制和粘贴单元格值:编译和运行时错误

  8. 8

    Excel VBA代码不起作用

  9. 9

    Excel VBA-如何基于两个单元格值添加行数并从第三个单元格复制/保留数据?

  10. 10

    VBA复制和粘贴方法不起作用

  11. 11

    单元格引用在Excel VBA中不起作用

  12. 12

    Excel VBA-如果单元格值满足条件,则在工作表之间复制单元格

  13. 13

    Excel VBA:复制增量单元格值

  14. 14

    Excel VBA复制单元格值,如果> 0到左侧的单元格

  15. 15

    VBA Excel单元格值是“ not” NULL

  16. 16

    VBA Excel-复制单元格值并将值粘贴在另一个单元格的字符之间

  17. 17

    excel vba-添加表列的日期基于包括日期和时间的相邻单元格

  18. 18

    Excel-VBA循环-从单元格复制公式,粘贴到单元格中,然后复制特殊粘贴

  19. 19

    Excel VBA在列中重复复制和粘贴一系列单元格

  20. 20

    Excel中的VBA代码以基于两个条件选择单元格

  21. 21

    基于多个单元格和值的 Excel 条件格式

  22. 22

    尝试使用vba在excel中显示单元格的旧值和新值

  23. 23

    比较工作表的单元格数据在 Excel VBA 中不起作用

  24. 24

    Excel VBA:将单元格文本剪切并粘贴到上方,如果单元格值向左= 0

  25. 25

    基于Excel VBA中单元格颜色的值计算

  26. 26

    VBA - 根据另一个单元格的值填充单元格值(代码不起作用)

  27. 27

    VBA:将 Visual Studio 代码链接到 Excel 输入单元格和输出表

  28. 28

    Excel VBA - 根据单独的范围值复制非空白单元格值

  29. 29

    从 Excel 2016 VBA 中的单元格范围中删除底部边框 - 不起作用?

热门标签

归档