[英]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.