分类 办公软件 下的文章

如果有很多= A1 + B1格式的文本字符串,则需要将这些文本字符串转换为真实公式并在工作表中计算它们的值,不幸的是,没有直接的方法可以在Excel中解决。 但是,在这里我可以为您介绍一些有趣的技巧。
以下简短的VBA代码可以帮助您解决将文本转换为公式的问题,具体步骤如下:
1.按住 ALT + F11 键,然后打开 Microsoft Visual Basic for Applications窗口.
2.点击 插页 > 模块,然后将以下代码粘贴到 模块窗口.
VBA代码:将文本字符串转换为公式

Function Eval(Ref As String)
Application.Volatile
Eval = Evaluate(Ref)
End Function

3.保存此代码并返回到您的工作表,输入此公式 = Eval(C1) 放入空白单元格(C1 包含要转换为公式的文本字符串单元格),请参见屏幕截图:
doc-convert-text--to-formula1.png
4.然后按 输入 键,然后选择单元格D1,将填充手柄拖到要应用此公式的范围。 看截图:
doc-convert-text--to-formula2.png

范例字符串转公式.xlsm

转载地址:https://zh-cn.extendoffice.com/documents/excel/1683-excel-convert-text-string-to-formula.html

这个一个简单的EXCEL透视表处理工具,批量将透视表数据转换成完整的记录行,方便数据的二次使用。

微信图片_20220819162216.png

基于vba宏编写,打开运行,需要启用宏,才能正常工作。

微信图片_20220819164549.png

处理代码如下:

Sub copy_Click()
'
' copy_Click 宏
'
' 快捷键: Ctrl+r
'
'定义 起始和结束单元变量
Dim start_range, end_range As String

'对起始和结束单元单元格进行赋值,取A4和B4的值
start_range = Range("A4").Value
end_range = Range("B4").Value

'定义 4个行列偏移量,相对于A1单元
Dim c1, r1, c2, r2 As Long
c1 = Range(start_range).Column - 1
r1 = Range(start_range).Row - 1
c2 = Range(end_range).Column - 1
r2 = Range(end_range).Row - 1

'行循环,从起始行到结束行
For i = r1 To r2

    '列循环,从起始列到结束列
    For j = c1 To c2
    
         '当本行单元格内容为空,且上行单元格不为空时,将上行单元格赋值到本行单元格
         If Range("A1").Offset(i, j) = "" And Range("A1").Offset(i - 1, j) <> "" Then
         
        '    Range("A1").Offset(i, j).Select
            Range("A1").Offset(i, j) = Range("A1").Offset(i - 1, j)
         End If
         
    '相当于 j++
    Next j
    
'相当于 i++
Next i

'操作完成输出提示,对话框
MsgBox ("已整理完毕!")

End Sub

范例下载