使用VBA直接引用范围Excel

我在使用直接引用时遇到了问题。 我试图把值放在根工作簿,而不使用select或激活。 但是,如果数据需要复制到哪里不工作,我的代码会给出一个错误。 如果工作表处于活动状态,则代码正常工作。

这是我的代码

Workbooks(root).Activate Dim wb As Workbook Set wb = Application.Workbooks(root) wb.Sheets("d_eff_stress").Cells(1, n).Value = filename wb.Sheets("d_eff_stress").Range(Cells(3, n), Cells(100, n)).Value = varray1 wb.Sheets("eff_stress").Cells(1, n).Value = filename wb.Sheets("eff_stress").Range(Cells(3, n), Cells(100, n)).Value = varray2 

解决scheme:全面参考范围…我可能已经知道

 Workbooks(root).Activate Dim wb As Workbook Set wb = Application.Workbooks(root) wb.Sheets("d_eff_stress").Cells(1, n).Value = filename wb.Sheets("d_eff_stress").Range(wb.Sheets("d_eff_stress").Cells(3, n), wb.Sheets("d_eff_stress").Cells(100, n)).Value = varray1 wb.Sheets("eff_stress").Cells(1, n).Value = filename wb.Sheets("eff_stress").Range(wb.Sheets("eff_stress").Cells(3, n), wb.Sheets("eff_stress").Cells(100, n)).Value = varray2 

您需要将表单血统分配给范围内的Cells

 wb.Sheets("d_eff_stress").Range(wb.Sheets("d_eff_stress").Cells(3, n), wb.Sheets("d_eff_stress").Cells(100, n)).Value 

为了减lessinput使用块:

 Workbooks(root).Activate Dim wb As Workbook Set wb = Application.Workbooks(root) With wb.Sheets("d_eff_stress") .Cells(1, n).Value = filename .Range(.Cells(3, n), .Cells(100, n)).Value = varray1 End With With wb.Sheets("eff_stress") .Cells(1, n).Value = filename .Range(.Cells(3, n), .Cells(100, n)).Value = varray2 End With