簡體   English   中英

VBA 運行時錯誤9:下標超出范圍

[英]VBA Run time error 9: Subscript out of range

我正在嘗試從 99 張紙中復制第二行,並將它們一個接一個地添加到第 100 張紙中。 vba 代碼如下,但我不斷收到以下錯誤:

運行時錯誤'9':下標超出范圍

Sub copyrow()
    Dim Nrow As Long, Nsheet As Long
    Dim i As Long

    Nrow = 2
    Nsheet = 100

    For i = 1 To Nsheet - 1
        Sheets(i).Cells(Nrow, 1).EntireRow.Copy Sheets(Nsheet).Cells(i, 1)
    Next i
End Sub

工作表名稱為 Sheet1 (2),... Sheet1 (24).. 等直到 Sheet1 (99)

我是 vba 的新手,不知道如何解決這個錯誤,我懷疑它可能在命名約定中,但我不確定。

從不同的工作表復制行

Option Explicit

Sub copyRow()

    Const dIndex  As Long = 100
    Const dFirst As Long = 1 ' Easily change the first destination row.
    ' Check this, you said 1, but it's 2 if Sheet (2) is the first worksheet.
    Const sFirst As Long = 2
    Const sRow As Long = 2
    
    Dim wb As Workbook: Set wb = ThisWorkbook ' workbook containing this code
    Dim dws As Worksheet: Set dws = wb.Worksheets("Sheet1 (" & 100 & ")")
    Dim n As Long: n = dFirst
    Dim i As Long
    For i = sFirst To dIndex - 1
        wb.Worksheets("Sheet1 (" & i & ")").Rows(sRow).Copy dws.Rows(n)
        ' If you only need values then use this more efficient way.
        'dws.Rows(n).Value = wb.Worksheets("Sheet1 (" & i & ")").Rows(sRow).Value
        n = n + 1
    Next i

End Sub

這會將指定的行從 99 個工作表復制到第 100 個工作表,盡管它可能不會按照預期的順序進行。

Sub copyrow()
Dim wb As Workbook
Dim wsDst As Worksheet
Dim wsSrc As Worksheet
Dim rngDst As Range
Dim rngSrc As Range
Dim Nrow As Long, Nsheet As Long

    ' changed as required e.g. ThisWorkbook or Workbooks("AWworkbook.xlsx")
    Set wb = ActiveWorkbook 
    
    Nrow = 2
    
    Set wsDst = wb.Sheets(100)
    Set rngDst = wsDst.Range("A1")
    
    For Each wsSrc In wb.Sheets
    
        If Not wsSrc Is wsDst Then
            Set rngSrc = wsSrc.Rows(Nrow)
            rngSrc.Copy rngDst
            Set rngDst = rngDst.Offset(1)
        End If
        
    Next wsSrc

End Sub

我嘗試了您的代碼並測試了多達 18 個工作表,它工作正常。 我建議您確認的一件事是確保 object Sheets(100) 指的是您的 Sheet1(100)。 您可以立即運行 window?Sheets(100).name 以確保上述內容。 然后,也許您嘗試縮小紙張數量以開始測試。 希望你得到你的解決方案。

暫無
暫無

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

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