使用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