簡體   English   中英

瀏覽工作簿並在所有工作表中的特定單元格的內容中在第一工作表中創建一列

[英]Going through workbook and making a column in the first sheet out of the content of a particular cell across all sheets

這給我一個錯誤:

(需要常量表達)

碼:

Dim Sheet3 As Worksheet
Dim t As Long
Dim Max As Long
Max = ActiveWorkbook.Worksheets.Count
Dim Dates(2 To Max) As String

For t = 2 To ActiveWorkbook.Worksheets.Count
  Set Sheet3 = ActiveWorkbook.Worksheets(t)
  If Sheet3.Name = "USA" & t Then
    Dates(t) = Sheet3.Range("E4").Value
  End If
Next t
SomeVariable = Sheet.Range("B22").Value

如果您需要一種方法來迭代工作表,則可以執行此操作。

iFoundWorksheet = 0
For iIndex = 1 To ea.ActiveWorkbook.Worksheets.Count
    Set ws = ea.Worksheets(iIndex)
    If UCase(ws.Name) = "RESULTS" Then
        iFoundWorksheet = iIndex
        Exit For
    End If
Next iIndex
If iFoundWorksheet = 0 Then
    MsgBox "No worksheet was found with the name RESULTS (this is not case sensetive). Aborting."
    GoTo Abort
End If
Set ws = ea.Worksheets(iFoundWorksheet)
ws.Activate

對於您的新問題,需要常量表達式。必須使用常量定義數組定義。

Dim Max As Long
Const Max1 = 5
Dim Dates(2 To Max1) As String

這會起作用。 但是您將無法加載

ActiveWorkbook.Worksheets.Count

變成一個const

您可能需要重新設置Dates數組。

Dim SummarySheet as Sheet

For r = 2 To ActiveWorkbook.Worksheets.Count
  Set Sheet = ActiveWorkbook.Worksheets(r)
If Sheet.Name = "Page"& r Then
     SummarySheet.Cells(Row you want to paste,Column you want to paste) = Sheet.Range("Cell you want to copy").Value
End if
Next r

我懷疑您的t和r是否不同,但是如果這樣,則應該為這兩者創建一個For循環,或者根據t得出ra計算的值

編輯:如果要粘貼在H9中並從那里開始,則列將為8,第9行。如果再輸入9 + r,它將始終采用下面的下一行。 假設r從1開始並具有連續的所有數字。 您可以對這些值進行一些嘗試,直到正確為止。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM