我在VBA中有以下代码 -
Sub KGBatch()
Dim Cognex As Variant
Cognex = Sheets("KGYield").Range("B82")
Sheets("KGYield").Range("B82:F82").Copy
If Sheets("Test").Range("A17") = "Cognex" Then
Sheets("Test").Range("A17").PasteSpecial xlPasteValues
'Else: Sheets("Test").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
End If
End Sub
Else被注释掉,直到我找到第一步。
我在一张纸上有一个范围,我正在复印到单独的纸张上。这是一个简单的功能。通常,复制的行只会覆盖目标表第17行中的任何内容。
'Cognex'是一个六位数字,通常保持不变。但是,偶尔会发生变化。当它确实发生变化时,我希望Excel能够识别并将数据粘贴到前一行的全新行上。
我相信我已经掌握了基础知识,除非有人有更好的方法(我不是VBA的天才!)。
目前我收到此代码的错误。我试图将Dim视为许多不同的变量类型。
如果我调整为整数然后我得到一个溢出错误,但如果我调暗为变量,字符串等,那么根本没有任何事情发生。它只执行复制但不粘贴。
我认为这是我能提供的所有信息。有人可以帮忙吗?
答案 0 :(得分:0)
使用变量:
Sub KGBatch()
Dim Cognex As Double
Cognex = Sheets("KGYield").Range("B82").Value
Sheets("KGYield").Range("B82:F82").Copy
With Sheets("Test")
If .Range("A17").Value = Cognex Then
.Range("A17").PasteSpecial xlPasteValues
'Else: .Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
End If
End With
End Sub
使用范围:
Sub KGBatch()
Dim Cognex As Range
Set Cognex = Sheets("KGYield").Range("B82")
Sheets("KGYield").Range("B82:F82").Copy
With Sheets("Test")
If .Range("A17").Value = Cognex.Value Then
.Range("A17").PasteSpecial xlPasteValues
'Else: .Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
End If
End With
End Sub