簡體   English   中英

如何為 VBA 中使用 Cells() 創建的范圍分配值

[英]How to assign a value to a Range created with Cells() in VBA

我想使用Range為多個單元格分配一個值。 我必須使用變量定義范圍,這就是我使用Cells()參數的原因,但是當我使用Cells創建 Range object 時,編譯器返回 1004 錯誤(應用程序定義或對象定義錯誤)。 不使用變量時也會發生錯誤,例如Range(Cells(0,0), Cells(1,0))

這是我的代碼

Dim Offset1 As Integer: Offset1 = 0
Dim Offset2 As Integer: Offset2 = 1
With ThisWorkbook.Worksheets("Sheet1")
  .Range(.Cells(Offset1, 0), .Cells(Offset2, 0)).Value = "NewValue"
End With

關於您的嘗試有幾個問題,但讓我為您說明一下。

如果你想使用.Range()方法,那么它需要一個合格的單元格范圍作為參數。

這是預期的(顯然在With語句中)......

.Range("A1:B10").Value = "NewValue"

...如果您想要類似的東西但希望它有點動態,那么指定的這將產生相同的結果。 您需要使用.Address以及適當的行/列單元格引用。

.Range(.Cells(1, 1).Address & ":" & .Cells(10, 2).Address).Value = "NewValue"

.Cells(1, 1) = 單元格 A1

.Cells(10, 2) = 單元格 B10

如果你想偏移一個特定的單元格,那么你需要一個適當的單元格引用開始。 例如,如果您想要從單元格 B10 向右 2 列和向下 5 行,您可以這樣做...

.Cells(10, 2).Offset(5, 2).Address

您應該能夠使其適應您的代碼。

暫無
暫無

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

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