簡體   English   中英

如何使用VBA宏動態引用Excel單元格?

[英]How to refer dynamicaly to an Excel cell with VBA Macro?

我正在嘗試通過循環進行循環以讀取每個單元格,然后寫入另一張紙。

Sub boucle_for()
    Dim col As Integer
    Dim lig As Integer
    Dim rr As Integer
    Dim cc As Integer

    col = 4
    lig = 3
    rr = 15
    cc = 24

    For i = 0 To 33
        Range("R[" & col & "]C[" & lig & "]").Formula = "=AVG('Weekly Changes'!R[" & rr & "]C[" & cc & "]:R[" & (rr + 1) & "]C[" & (cc + 1) & "])"
        rr = rr + 14
        lig = lig + 1
    Next
End Sub

我的目的是動態引用一個單元,但是VBA腳本說這是一個錯誤。 我已經習慣了Java和JavaScript數組,但是我在此方面失敗了。

我在哪里弄錯了?

我總是喜歡使用Cells類(使用R1C1引用)方法,如下所示:

Cells(rr, col).Formula = ...

如果需要多單元格范圍,請執行以下操作:

Range(Cells(rr, col), Cells(rx, colx)).Formula = ...

但是您也可以這樣做:

Range("A5").Formula = ...

某些人會執行將列號轉換為字母的功能。 我認為這很俗氣,但看起來像這樣:

Range(MyNumberToLetterFunction(col) & rr).Formula = ...

或多單元格范圍:

Range("A5:B6").Formula = ...

順便說一句,使用圖紙參考來限定范圍是一種很好的做法。 就像您正在做的那樣,它似乎可以很好地與循環配合使用:

Sheet1.Cells(rr, col).Value = ...

要么

Sheets("My Awesome Stuff").Cells(rr, col).Value = ...

暫無
暫無

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

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