否则如果使用Dim Not Working(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 

除非我找出第一步,否则注释会被删除。

我在一张纸上有一个范围,我正在复印到一张单独的纸上。 这是一个简单的function。 通常复制的行将只覆盖目标工作表中第17行的任何内容。

“康耐视”是一个六位数字,通常保持不变。 但是,偶尔它会改变。 当它发生变化时,我希望Excel能够识别并将数据粘贴到前一个整个新行上。

我相信我已经有了基础知识,除非有人有更好的方法(我不是VBA的天才!)。

目前,我得到这个代码的错误。 我试图昏暗许多不同的variablestypes。

如果我昏暗整数,然后我得到一个溢出错误,但如果我昏暗的variables,string等,则什么也没有发生。 它只是执行复制,但没有粘贴。

我想这就是我可以给的所有信息。 任何人都可以帮忙吗?

使用variables:

 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