簡體   English   中英

在Excel VBA中使用“設置”設置范圍

[英]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.

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