gpt4 book ai didi

vba - 如何在不更改公式的情况下更改单元格的文本?

转载 作者:行者123 更新时间:2023-12-04 20:16:37 25 4
gpt4 key购买 nike

我是 VBA 新手。这个问题已被问及回答 here但答案似乎太骇人听闻了。有没有更好的方法来更改单元格的值而不更改其中的基础公式?我试过 target.text="changed"但这给了我“需要对象”的错误

我问的原因是在 UDF 中您可以更改单元格的显示,但公式仍然存在。如何在 UDF 之外执行此操作?

编辑:

在下面的示例中,myudf 和 my_udf 似乎做同样的事情,每个人都告诉我只做 NumberFormat。问题是 Numberformat 将永久更改单元格。如果您在 A2 中输入了“=my_udf()”,那么只需返回并在那里输入一些随机文本。除非您返回并手动重新格式化单元格(或输入 excel 内置函数),否则它将显示“ThisThatThere”。

模块1

Function myudf()
myudf = "ThisThatThere"
End Function

Function my_udf()
my_udf = "Temporary"
End Function

本工作簿:
Sub Workbook_SheetChange(ByVal sh As Object, ByVal target As Range)
If target.HasFormula Then
If LCase(target.Formula) Like "=my_udf(*" Then
target.NumberFormat = "0;0;0;""ThisThatThere"""
End If
End If
End Sub

最佳答案

如果公式返回 ,则很容易。数值 而不是 文本值 .在单元格中放置一个公式,选择它并运行:

Sub ChangeText()
Dim DQ As String, mesage As String
DQ = Chr(34)
mesage = DQ & "override" & DQ
ActiveCell.NumberFormat = mesage & ";" & mesage & ";" & mesage & ";"
End Sub

就其本身而言, UDF ,与非 VBA 工作表公式一样,只能将值返回到单元格.......该值可以做到最好,以影响条件格式。

关于vba - 如何在不更改公式的情况下更改单元格的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22597328/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com