如何在所有工作表中获取单元格的值

时间:2009-02-05 14:55:58

标签: arrays excel vba excel-vba

我正在尝试编写一个VBScript函数,它将Excel文档的所有选项卡中的单元格值(“E1”)收集到一个数组中(Reviewers)。

我写了下面的代码,但数据没有存储到数组中,有人可以告诉我我做错了吗?

这是代码:

vba screenshot

4 个答案:

答案 0 :(得分:1)

由于我的公司阻止了对imageshack的访问,我无法看到您的代码。

您是否尝试过以下内容?

Dim i As Long
Dim reviewers() As String
ReDim reviewers(0 To Worksheets.Count - 1)

For i = 0 To Worksheets.Count - 1
    reviewers(i) = Worksheets(i + 1).Cells(1, 5).Value
Next

答案 1 :(得分:1)

甚至,因为工作表是基于1的(因此我们可以失去+1和-1业务):

Dim i As Long
Dim reviewers() As String
ReDim reviewers(1 To Worksheets.Count)

For i = 1 To Worksheets.Count 
    reviewers(i) = Worksheets(i).Cells(1, 5).Value
Next

答案 2 :(得分:1)

您的代码说

 Reviewers(N) = Sheets(N+1).Range("B7:C7").Value

范围B7:C7由两个单元组成,而不是一个,因此该值是一个数组,而不是单个值。使用一个单元格范围。

答案 3 :(得分:0)

如果您希望它们都在那里,您只需要连接单元格或替换& +如果你想添加它们,我不知道它们是值还是文本。

Reviewers(N) = Sheets(N+1).Range("B7").Value & Sheets(N+1).Range("C7").Value