我需要在工作表中使用宏添加一个功能。我需要将一个变量传递给Excel函数,因为myWorkbooksheetName(它们将引用)是变量。

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)"

09-04 13:26