所有
代码在这一部分X.Sheets("TEMP").Range("A").Copy Destination:=Y.Sheets("Text Template").Range("D3")
犯了错误。你能告诉我们如何解决这个问题吗?我的目标是获取活动工作表并将数据迁移到现有的已保存工作簿。活动工作簿每天都不同,因此通过文件路径路由它不是最支持的选项。
非常感谢任何建议。
Sub Datamove()
'
Worksheets.Add().Name = "TEMP"
Sheets("MCI").Select
Cells.Select
Selection.Copy
Sheets("TEMP").Select
Sheets("TEMP").Paste
ActiveSheet.Range("$A$1:$AH$799").AutoFilter Field:=2, Criteria1:=Array( _
"MC1A", "MC1B", "MC1C", "MC1D", "MC1E", "MC1F", "MC1G", "MC1H", "MC1J", "MC1K", "MC1L", _
"MC1M", "MC1N", "MC1P", "MC1Q", "MC1R", "MC2A", "MC2B", "MC2C", "MC2D", "MC2E", "MC3A", _
"MC3C"), Operator:=xlFilterValues
ActiveSheet.Range("$A$1:$AH$799").AutoFilter Field:=4, Criteria1:= _
"Residential"
ActiveSheet.Range("$A$1:$AH$799").AutoFilter Field:=5, Criteria1:="="
Dim X As Workbook
Dim Y As Workbook
Set X = ActiveWorkbook
Set Y = Workbooks.Open("insert filepath")
X.Sheets("TEMP").Range("A").Copy Destination:=Y.Sheets("Text Template").Range("D3")
X.Sheets("TEMP").Range("R").Copy Destination:=Y.Sheets("Text Template").Range("F3")
X.Sheets("TEMP").Range("AU").Copy Destination:=Y.Sheets("Text Template").Range("B3")
End Sub
答案 0 :(得分:0)
试试这些:
X.Sheets("TEMP").Range("A3").Copy Destination:=Y.Sheets("Text Template").Range("D3")
X.Sheets("TEMP").Range("R3").Copy Destination:=Y.Sheets("Text Template").Range("F3")
X.Sheets("TEMP").Range("AU3").Copy Destination:=Y.Sheets("Text Template").Range("B3")
在这里,您可以阅读范围对象的更多内容: https://msdn.microsoft.com/en-us/library/office/ff838238.aspx?f=255&MSPPError=-2147217396
如果您只想复制列,请使用如下:
Columns("A:A").Copy
答案 1 :(得分:0)
假设代码为Set Y = Workbooks.Open("insert filepath")
无情地运行,然后替换:
X.Sheets("TEMP").Range("A").Copy Destination:=Y.Sheets("Text Template").Range("D3")
X.Sheets("TEMP").Range("R").Copy Destination:=Y.Sheets("Text Template").Range("F3")
X.Sheets("TEMP").Range("AU").Copy Destination:=Y.Sheets("Text Template").Range("B3")
使用:
With X.Sheets("TEMP")
.Range("A1", .Cells(.Rows.Count, "A").End(xlUp)).Copy Destination:=Y.Sheets("Text Template").Range("D3")
.Range("R1", .Cells(.Rows.Count, "R").End(xlUp)).Copy Destination:=Y.Sheets("Text Template").Range("F3")
.Range("AU1", .Cells(.Rows.Count, "AU").End(xlUp)).Copy Destination:=Y.Sheets("Text Template").Range("B3")
End With