2011-01-06 41 views
1

从其他表格读取和写入数据时,我遇到了一些问题。在没有选择第一个的情况下在其他表格中读取/写入数据

虽然我可以读取和使用写单个细胞细:

纸张(纸张名称).cells(X,Y)。价值

使用:

纸张(纸张名称).range (单元格(x,y),单元格(a,b))。值

似乎不起作用。

虽然这很容易通过简单地选择工作表来解决,它确实有一些开销,并且感觉非常智能。

我需要这样做的主要目的是读取和写入数组到非活动的工作表,如果任何人有替代我会是格外格拉富尔。

干杯

回答

1

使用范围对象中的细胞的方法是指到另一个工作表需要你先激活该工作表,我认为(见第5节在此从msdn

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 
+0

谢谢,对我来说很好。我认为这比只选择更低的开销? – Cunning 2011-01-06 13:34:15

3

如果你想避免使用选择或激活你能不能代替吗?:

With Sheets("Sheet Name") 

    arrData = .Range(.Cells(1,1), .Cells(2,1)).Value 

End With 

As far因为我知道这应该工作。

1
Dim ws As Worksheet 

Set ws= Worksheets("MySheet") 

     With ws 
     .Range(ws.Cells(3, 1), ws.Cells(3, 14)).ClearContents 
     End With 

End If 

这个作品真的很好,但不激活片

相关问题