有人可以帮助我理解为什么这有效:
Sub CommandButton1_Click()
Sheets("Inventory Data").Range("A1:G1").Copy
Sheets("Desig From Inv").Range("A1").PasteSpecial xlPasteValues
End Sub
Run Code Online (Sandbox Code Playgroud)
但是,这不是吗?
Sub CommandButton1_Click()
Sheets("Inventory Data").Range(Cells(1, 1), Cells(1, 7)).Copy
Sheets("Desig From Inv").Range("A1").PasteSpecial xlPasteValues
End Sub
Run Code Online (Sandbox Code Playgroud)
我真的希望列号最终成为一个变量.像这样:
Sub CommandButton1_Click()
Sheets("Inventory Data").Range(Cells(1, 1), Cells(1, i)).Copy
Sheets("Desig From Inv").Range("A1").PasteSpecial xlPasteValues
End Sub
Run Code Online (Sandbox Code Playgroud)
我尝试了很多将"细胞"放入"范围"的形式.
谢谢!
这个说法:
Sheets("Inventory Data").Range(Cells(1, 1), Cells(1, i)).Copy
Run Code Online (Sandbox Code Playgroud)
真的这样做:
ActiveWorkbook.Sheets("Inventory Data") _
.Range(ActiveSheet.Cells(1, 1), ActiveSheet.Cells(1, i)) _
.Copy
Run Code Online (Sandbox Code Playgroud)
除非ActiveWorkbook.Sheets("Inventory Data")是ActiveSheet,否则声明会爆炸,因为你在另一张纸上使用一个范围来获得一个范围ActiveWorkbook.Sheets("Inventory Data").
合格所有的东西!
... With块使这更容易:
With Worksheets("Inventory Data")
.Range(.Cells(1, 1), .Cells(1, i)).Copy
End With
Run Code Online (Sandbox Code Playgroud)
我会允许自己插上一点点; 我正在开发一个(免费和开源)VBE加载项,可以很容易地找到这些错误 - 将代码粘贴到本页底部(虽然它在实际的VBE中运行得更快)看到一切Rubberduck可以在你的代码中找到 - 它还不完美(但是),但它总比没有好:

| 归档时间: |
|
| 查看次数: |
84 次 |
| 最近记录: |