我需要在工作表中使用宏添加一个功能。我需要将一个变量传递给Excel函数,因为myWorkbook
和sheetName
(它们将引用)是变量。
MyRange = Workbooks(myWorkbook).Sheets(sheetName).Range("H11:H32")
theFormula = "=SUM(" & MyRange & ")"
Range("B2").Select
ActiveCell.FormulaR1C1 = theFormula
我收到错误13:
Type Mismatch
。我不是一个狂热的VBA程序员,这让我很头疼。我尝试将
theFormula
定义为String,但没有希望。 最佳答案
您需要将Range对象转换为范围的字符串表示形式,例如,将公式设置为=SUM($H$11:$H$32)
;
Dim MyRange As Range
set MyRange = Workbooks(myWorkbook).Sheets(sheetName).Range("H11:H32")
theFormula = "=SUM(" & MyRange.Address(ReferenceStyle:=xlR1C1) & ")"
Range("B2").Select
ActiveCell.FormulaR1C1 = theFormula
或者,如果您不想要R1C1表示法,则可以;
ActiveCell.Formula = "=SUM(H11:H32)"