【发布时间】:2015-11-17 13:59:35
【问题描述】:
我在 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 设置为许多不同的变量类型。
如果我调暗为整数,则会出现溢出错误,但如果我调暗为变量、字符串等,则什么也不会发生。它只是执行复制而不是粘贴。
我想这就是我能提供的所有信息。有人可以帮忙吗?
【问题讨论】:
-
你需要
set cognex = ... -
康耐视的值是否存储在 Sheets("KGYield").Range("B82") 中?是这样,将该行更改为 Cognex = Sheets("KGYield").Range("B82").Value 并在 if 语句中将其更改为 If Sheets("Test").Range("A17") = Cognex Then
-
感谢@Sous。这是一个非常简单的从康耐视引用报价的案例。亲爱的。
-
很高兴我能帮上忙!对不起,我错过了所有那些甜蜜的互联网点:(
-
你可以拿一些我个人的 Jamsandwich 积分 :)