vba - 构造一个输入值,显示值的单元格,但单元格值是别的什么?
问题描述
所以,标题有点混乱。我将使用一个例子。我想在单元格 A1 上输入一个值 3。我想让单元格做一些数学运算,例如乘以 3 加 1。接下来,将值返回到单元格 A1,但是当我单击单元格 A1 时,我希望它显示数学公式。所以这就是我得到的:
Sub A()
Dim term1 As Double
Dim term2 As Double
Range("A1").NumberFormat = "General"
term1 = Range("A1").Value
term2 = term1 * 3 + 1
Range("A1").Value = term2
term3 = term2
term3 = """term1 * 3 + 1"""
Range("A1").NumberFormatLocal = term3
End Sub
我已经让它做我想做的事,即取一个值然后返回它。但是,我似乎无法.NumberFormatLocal
将term2
值作为字符串。这样当操作完成时,我会看到单元格上显示 4,当我单击单元格时,会A1 * 3 + 1
显示公式。然后的目的Range("A1").NumberFormat = "General"
是让我可以通过在单元格中输入一些其他数字来重新执行此操作。
有谁知道这是怎么做到的吗?非常感谢!
解决方案
我不确定我是否理解正确,但我认为您想根据该单元格的值向您选择的单元格插入一个无效的公式。如果是这种情况,下面的公式对你有用:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim myFormula As String
If IsNumeric(Selection.Value) = True And Selection.Value <> "" Then
myFormula = Selection.Value & " * 3 + 1"
Selection.Value = myFormula
End If
End Sub
由于代码在Worksheet_SelectionChange
事件中,因此每次选择任何单元格时它都会起作用。我添加了一个If...Then
条件,以便不重新制定已经制定的单元格或空白单元格。
由于该公式适用于所选单元格,因此您应该退出该单元格并重新输入,以使其适用于您的数字单元格。
但是,如果您并不严格需要在自身单元格中创建的公式,而是在另一个单元格中创建公式;也可以使用公式解决方案。
当您的号码为A1
时,将以下公式写入B1
并抄下:
=ADDRESS(ROW(B1),COLUMN(B1)-1,1) & "* 3 + 1"
推荐阅读
- reactjs - 在 React 中设置 Web3 实例的最佳方法?
- c# - 用于处理总 x 百万交易的推荐 BatchSize
- webstorm - 更改 WebStorm 中的背景颜色
- google-app-engine - 在 Google App Engine 上托管的每 14 分钟出现一次不和谐机器人错误 (500)
- python - 如何打印除dict中的键之外的所有键的值
- python - 为什么我们需要在对它进行更改之前在 for 循环之外定义一个字符串?
- javascript - 随着可用内存量的减少,进程是否会变慢?
- python - 在列中创建具有列表理解的多行元素会在 PySimpleGUI 中产生错误
- r - 尝试使用 distill 构建网站时出现错误消息:版本规范无效
- swiftui - Xcode 13 - 导入 SwiftUI 后,“@”后无法完成