【问题标题】:How to add a Dollar $ sign to a complex formula?如何在复杂的公式中添加美元符号?
【发布时间】:2020-01-03 18:31:55
【问题描述】:

我已经为我正在为工作编写的这段代码提出了几个问题,在另一篇文章中(这里:How to insert, through VBA, a formula in a cell with special characters like "-" or "$"?),JvdV 给了我这个公式:

With Worksheets(LabourSheet)
    .Cells(PosStartLineCalc + 1, PosStartColumnLt).Formula = "=IF(or(" & .Cells(PosStartLineCalc, PosStartColumnLt).Address(False, False) & "=""-""," & .Cells(PosStartLineCalc, PosStartColumnLt).Address(False, False) & "=""X""),""-"",Cars!" & .Cells(PosStartLine + (TPICode * 3) - 3, Split(Cells(1, col).Address, "$")(1)).Address(False, False) & "*" & .Cells(PosStartLineCalc, PosStartColumnLt).Address(False, False) & "*Data!$C$8)"
End With

在单元格中给出一次,例如:=IF(OR(C4="-";C4="X");"-";Cars!C4*C4*Data!$C$8)

如果我告诉你我不完全了解 VBA 方面,这并不奇怪......

无论如何,它有效,但我需要在复制整个表格时添加一些“$”美元符号,并且“Cars!C4”应该保持原样......

那么,如何在“Cars!C4”上添加漂亮的美元符号以变成“Cars!$C$4”?

我试过这样:

“,汽车!” & .Cells("$" & PosStartLine + (TPICode * 3) - 3, "$" & 拆分(单元格(1,col)。地址,“$”)(1))。地址(假,假)

“,汽车!” & .Cells(""$"" & PosStartLine + (TPICode * 3) - 3, ""$"" & 拆分(单元格(1,col)。地址,“$”)(1))。地址(假,假)

“,汽车!” & .Cells(chr(36) & PosStartLine + (TPICode * 3) - 3, chr(36) & 拆分(单元格(1,col)。地址,“$”)(1))。地址(假,假)

它给了我一个“类型不匹配”的错误:'(

没有任何效果...

当然,我在互联网上搜索过,但我总能找到他们解释可以按 F4 以及美元符号是什么的页面...

提前致谢!

【问题讨论】:

    标签: excel vba formula dollar-sign


    【解决方案1】:
    .Cells(PosStartLine + (TPICode * 3) - 3, Split(Cells(1, col).Address, "$")(1)).Address(False, False)
    

    在这段代码中,将提供给 .address 的参数更改为 (True,True)

    .Cells(PosStartLine + (TPICode * 3) - 3, Split(Cells(1, col).Address, "$")(1)).Address(**True, True**)
    

    【讨论】:

    • 啊?就这么简单?谢谢:D
    【解决方案2】:

    您已指定 .Address(False, False) False 语句用于 RowAbsoluteColumnAbsolute 在适用的情况下将它们更改为 True 将为您提供绝对单元格引用而不是相对单元格引用的美元符号

    例如

    With Worksheets(LabourSheet)
        .Cells(PosStartLineCalc + 1, PosStartColumnLt).Formula = "=IF(or(" & .Cells(PosStartLineCalc, PosStartColumnLt).Address(False, False) & "=""-""," & .Cells(PosStartLineCalc, PosStartColumnLt).Address(False, False) & "=""X""),""-"",Cars!" & .Cells(PosStartLine + (TPICode * 3) - 3, Split(Cells(1, col).Address, "$")(1)).Address(True, True) & "*" & .Cells(PosStartLineCalc, PosStartColumnLt).Address(False, False) & "*Data!$C$8)"
    End With
    

    【讨论】:

    • 感谢您的解释:)
    • @zepeu 应该添加 - 这些的默认值为 True,因此您可以根据需要删除括号
    【解决方案3】:

    难道不能通过简单地在公式中添加带引号的美元符号来做到这一点,如下所示:

    "$"
    

    【讨论】:

    • 嗯,正如你所见,公式不是直接写的,我试过了,当然,它给了我一个错误......我会编辑我的帖子来添加我试过的,对不起因为忘记了^^,
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-08
    • 2022-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-11
    • 2020-07-05
    相关资源
    最近更新 更多