【发布时间】:2014-10-16 15:56:18
【问题描述】:
谁能告诉我为什么我似乎无法让变量在我的 Range.select 中起作用?
从注释语句中可以看出,我尝试了许多不同的语法和命令,但总是收到运行时错误 1004,方法范围对象全局失败
我正在尝试从特定部分的第一张表中获取数据,并将其复制到第二张表中当前行中的特定单元格(按循环计数)。忽略未完成的循环,无法让它运行一次,所以我还没有完成编写循环。
Sub PutDataSht2()
Dim rowVal As Integer
rowVal = 1
'
' PutDataSht2
'
'
'ThisWorkbook.Activate
'Sheets("Sheet1").Activate
Sheets("Sheet1").Select
Range("A38:H38").Select
Selection.Copy
'Sheets("Sheet2").Activate
Sheets("Sheet2").Select
'Range("A1:H1").Select
Range("A[XrowVal]:H[XrowVal]").Select
'Range("A & rowVal:H & rowVal").Select
'Application.Goto ActiveWorkbook.Sheets("Sheet2").Range("A & rowVal:H & rowVal")
'ActiveSheet.Range(Cells(1, rowVal), Cells(8, rowVal)).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'Sheets("Sheet1").Activate
Sheets("Sheet1").Select
Range("B85:H85").Select
Application.CutCopyMode = False
Selection.Copy
'Sheets("Sheet2").Activate
Sheets("Sheet2").Select
'Range("J1:P1").Select
Range("J & rowVal:P & rowVal").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'Sheets("Sheet1").Activate
Sheets("Sheet1").Select
Range("B132:D132").Select
Application.CutCopyMode = False
Selection.Copy
'Sheets("Sheet2").Activate
Sheets("Sheet2").Select
'Range("R1:T1").Select
Range("R & rowVal:T & rowVal").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
rowVal = (rowVal + 1)
End Sub
`
【问题讨论】:
-
忘了提到我可以让它与显式 Range("R1:T1") 一起工作。选择命令类型只是不能使用变量。
-
对于它的价值,你不必选择一些东西来用 VBA 复制它。例如,您可以简单地写成
Range("A38:H38").Copy,而不是Range("A38:H38").Select和Selection.Copy这两个语句。祝你好运!