2014-04-07 45 views
0

使用此SO answer,我一直在试图让下面的代码工作。设置范围使用'设置'在excel vba

' 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 

奇怪的是它有一次工作。但是,当我更改其中一个变量时,它开始失败。

如何在动态基础上获取需要的单元格中的公式?

回答

1

试试这个:

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