如果昏暗不起作用(Excel VBA)

时间:2015-11-17 13:59:35

标签: excel vba 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行中的任何内容。

'Cognex'是一个六位数字,通常保持不变。但是,偶尔会发生变化。当它确实发生变化时,我希望Excel能够识别并将数据粘贴到前一行的全新行上。

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

目前我收到此代码的错误。我试图将Dim视为许多不同的变量类型。

如果我调整为整数然后我得到一个溢出错误,但如果我调暗为变量,字符串等,那么根本没有任何事情发生。它只执行复制但不粘贴。

我认为这是我能提供的所有信息。有人可以帮忙吗?

1 个答案:

答案 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