我在从其他工作表中读取和写入数据时遇到了一些问题。
虽然我可以使用以下方法读写单细胞:
张(表格名称).cells(x,y).value
使用:
sheet(sheet Name).range(cells(x,y),cells(a,b))。value
似乎不起作用。
虽然通过简单地选择工作表很容易解决这个问题,但它确实有一点开销并感觉非常不合理。
我要求的主要目的是读取和编写数组到非活动工作表,如果有人有替代方案我会非常感激。
干杯
答案 0 :(得分:3)
如果你想避免使用Select或Activate,你可以不做吗?:
With Sheets("Sheet Name")
arrData = .Range(.Cells(1,1), .Cells(2,1)).Value
End With
据我所知,这应该有用。
答案 1 :(得分:2)
Dim ws As Worksheet
Set ws= Worksheets("MySheet")
With ws
.Range(ws.Cells(3, 1), ws.Cells(3, 14)).ClearContents
End With
End If
在没有激活工作表
的情况下,这非常有效答案 2 :(得分:1)
使用范围对象中的单元格方法引用另一个工作表需要您首先激活该工作表(请参阅 msdn 中的第5节)
Sub ReferToCells()
Dim arrData() As Variant, i As Long
Sheets("Sheet2").Activate
arrData = Range(Cells(1, 1), Cells(2, 1)).Value
For i = 1 To UBound(arrData)
Debug.Print arrData(i, 1)
Next i
End Sub