ElseIf与Dim不工作(Excel VBA)



我在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

最新更新