[英]setting ranges using 'Set' in excel vba
使用這個SO答案 ,我一直在嘗試使以下代碼起作用。
' inserting formulas into the userOutput.csv sheet
Dim wsUser As Worksheet: Set wsUser = Worksheets("userOutput.csv")
Dim agentEmailRange As Range: 'Set agentEmailRange = wsUser.Range(Cells(2, agentEmailColumn), Cells(propertyRows, agentEmailColumn))
' following line fails with runtime error 1004, method 'range' of object '_Worksheet' fialed.
Set agentEmailRange = wsUser.Range(Cells(2, agentEmailColumn), Cells(propertyRows, agentEmailColumn))
wsUser.Range("I1") = "Agent Email"
With agentEmailRange
.Value = "VLOOKUP(RC[-1], 'agentsOutput.csv'!R2C1:R" & agentRows & "C6 ,4, FALSE)"
End With
奇怪的是,它只能工作一次。 但是,當我更改其中一個變量時,它開始失敗。
如何動態地在需要的單元格中獲取該公式?
試試這個:
Dim wsUser As Worksheet
Dim agentEmailRange As Range
Set wsUser = Worksheets("userOutput.csv")
With wsUser
Set agentEmailRange = .Range(.Cells(2, agentEmailColumn), .Cells(propertyRows, agentEmailColumn))
.Range("I1") = "Agent Email"
End With
agentEmailRange.Formula = "=VLOOKUP(RC[-1], 'agentsOutput.csv'!R2C1:R" & agentRows & "C6 ,4, FALSE)"
您應該完全限定Cells
,即指定Cells
所屬的表。 請注意,我使用的是.Cells(..)
而不是Cells(..)
-在這種情況下,Excel知道Cells
屬於表wsUser
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.