繁体   English   中英

Excel宏-错误设置单元格公式

[英]Excel Macro - Error setting cell formula

我需要在工作表中使用宏添加一个功能。 我需要将变量传递给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)"
Sub MakeSum(sBookName As String, sSheetName As String)

    Dim rMyRange As Range

    Set rMyRange = Workbooks(sBookName).Sheets(sSheetName).Range("H11:H32")

    If rMyRange.Parent.Parent.Name = ActiveWorkbook.Name Then
        With ActiveSheet
            'same sheet, so just use address
            If rMyRange.Parent.Name = .Name Then
                .Range("B2").Formula = "=SUM(" & rMyRange.Address & ")"
            Else
            'same workbook, different sheet, so prepend sheet name
            'single quotes prevent error when there's a space in the sheet name
                .Range("B2").Formula = "=SUM('" & rMyRange.Parent.Name & "'!" & rMyRange.Address & ")"
            End If
        End With
    Else
        'not the same workbook, use external address
        ActiveSheet.Range("B2").Formula = "=SUM(" & rMyRange.Address(, , , True) & ")"
    End If

End Sub

庆幸的是,这行不通-您说的是单元格公式应等于“ = SUM(”&MyRange&“)”-但是,何时实际求值呢?

是否执行Formula = SUM(“&MyRange&”)

工作?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM