首页 文章

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

提问于
浏览
1

我在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视为许多不同的变量类型 .

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

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

1 回答

  • 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
    

相关问题