Я пытаюсь написать функцию VBScript, которая собирает значение ячейки («E1») на всех вкладках документа Excel в массив (рецензенты).
Я написал следующий код, но данные не сохраняются в массив, может кто-нибудь сказать мне, что я делаю неправильно?
Это код:
Или даже, так как Worksheets основаны на 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
Ваш код говорит:
Reviewers(N) = Sheets(N+1).Range("B7:C7").Value
Диапазон B7: C7 состоит из двух ячеек, а не одной, и, следовательно, значение является массивом, а не одним значением. Используйте диапазон одной ячейки.
Я не вижу ваш код, так как моя компания заблокировала доступ к 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
Вам просто нужно объединить ячейки, если вы хотите, чтобы они оба были там, или заменить & на +, если хотите добавить их, я не знаю, являются ли они значениями или текстом.
Reviewers(N) = Sheets(N+1).Range("B7").Value & Sheets(N+1).Range("C7").Value