Excel VBA。选择仅在图纸上工作(1)
我目前正在设置新的设计Excel文件,以便更好地适应移动设备。但是一些客户也需要旧设计文件,我需要将数据从新设计文件导出到旧设计文件。 旧设计文件包含4张图纸。导出数据后,我要在所有图纸上选择单元格A1。但我只能选择范围(“A1”)。选择或单元格(1,1)。仅在工作表上选择(1)。如果我在其他工作表上设置,我会得到“运行时错误“1004”:范围类的Select方法失败”。下面是VBA代码以及一些注释。请帮忙Excel VBA。选择仅在图纸上工作(1),excel,vba,Excel,Vba,我目前正在设置新的设计Excel文件,以便更好地适应移动设备。但是一些客户也需要旧设计文件,我需要将数据从新设计文件导出到旧设计文件。 旧设计文件包含4张图纸。导出数据后,我要在所有图纸上选择单元格A1。但我只能选择范围(“A1”)。选择或单元格(1,1)。仅在工作表上选择(1)。如果我在其他工作表上设置,我会得到“运行时错误“1004”:范围类的Select方法失败”。下面是VBA代码以及一些注释。请帮忙 Set Old_CV = Application.Workbooks.Open(Old_
Set Old_CV = Application.Workbooks.Open(Old_File_Path)
ThisWorkbook.Worksheets("Data_Import").ListObjects("tbl_part2").DataBodyRange.Copy
wsTarget = ThisWorkbook.Worksheets("Data_Import").Range("rng_CV_Part2_Old")
Old_CV.Worksheets(wsTarget).Range(wsSource.Range("rng_P2_A1_Start_Old").Value).PasteSpecial xlPasteValuesAndNumberFormats
Old_CV.Activate
Old_CV.Sheets(1).Cells(1, 1).Select 'This line works even without Old_CV.Active
Old_CV.Sheets(2).Cells(1, 1).Select 'This and below lines don't work even with Old_CV.Active and showing Runtime Error
Old_CV.Sheets(3).Cells(1, 1).Select
Old_CV.Sheets(4).Cells(1, 1).Select
请提供帮助。激活并选择
和Select
通常都是这样,但是如果没有它们,您就无法完成此任务Activate
- 一个好主意是从最后一个工作表到第一个工作表执行此操作,以便第一个工作表保持选中状态(激活)
- 在前两个示例中,您在选择单元格之前激活了每个工作表,因此无需激活工作簿
- 在第三个示例中,您必须首先激活工作簿,最后必须选择第一个工作表“以摆脱组”
- out注释行用于创建关键工作示例,其中第一个工作簿和另一个工作簿处于活动状态
Option Explicit
Sub test1()
' Dim Old_CV As Workbook
' Set Old_CV = ThisWorkbook
' Workbooks("Book2").Activate
' ActiveSheet.Cells(1, 1).Value = 1
Old_CV.Worksheets(4).Activate
Old_CV.Worksheets(4).Cells(1, 1).Select
Old_CV.Worksheets(3).Activate
Old_CV.Worksheets(3).Cells(1, 1).Select
Old_CV.Worksheets(2).Activate
Old_CV.Worksheets(2).Cells(1, 1).Select
Old_CV.Worksheets(1).Activate
Old_CV.Worksheets(1).Cells(1, 1).Select
End Sub
Sub test2()
' Dim Old_CV As Workbook
' Set Old_CV = ThisWorkbook
' Workbooks("Book2").Activate
' ActiveSheet.Cells(1, 1).Value = 2
Dim n As Long
For n = 4 To 1 Step -1
Old_CV.Worksheets(n).Activate
Old_CV.Worksheets(n).Cells(1, 2).Select
Next n
End Sub
Sub test3()
' Dim Old_CV As Workbook
' Set Old_CV = ThisWorkbook
' Workbooks("Book2").Activate
' ActiveSheet.Cells(1, 1).Value = 3
Old_CV.Activate
Old_CV.Worksheets(Array(1, 2, 3, 4)).Select
ActiveSheet.Cells(1, 3).Select
Old_CV.Worksheets(1).Select
End Sub
床单有保护吗?可以手动选择吗?图纸(1)和图纸(2)受保护,图纸(3)和图纸(4)不受保护。我可以手动选择。谢谢@vbasic208。
我已经按照您的test2()完成了操作,并将For循环修改为
For I=Old_CV.Sheets.Count为1步-1