繁体   English   中英

ElseIf的Dim无法正常运行(Excel VBA)

[英]ElseIf with 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

在我确定第一步之前,将注释掉Else。

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

“ Cognex”是一个六位数的数字,通常保持不变。 但是,有时会发生变化。 当它确实发生变化时,我希望Excel能够识别出这一点并将数据粘贴到上一行下面的一行新行中。

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

目前,我在此代码中遇到了错误。 我尝试将Dim设置为许多不同的变量类型。

如果将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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM