我在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行中的任何内容。
"干邑"是一个六位数的数字,通常保持不变。然而,它偶尔会改变。当它发生变化时,我希望Excel能够识别出这一点,并将数据粘贴到上一行下的一行。
我相信我已经掌握了基本知识,除非有人有更好的方法(我不是VBA天才!)。
不过,目前我在这段代码中遇到了一个错误。我尝试过将Dim作为许多不同的变量类型。
如果我将Dim设为整数,则会出现溢出错误,但如果我将其设为Variable、string等,则根本不会发生任何事情。它只执行复制而不执行粘贴。
我想这就是我能提供的全部信息。有人能帮忙吗?
使用变量:
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