Ada*_*eal 7 excel pretty-print worksheet-function
有没有人知道一个(免费)工具来漂亮地打印Excel公式?谷歌搜索没有改变任何东西.
我有一些半复杂公式的工作表,所以这将使我的生活更轻松.
我只是想改变这样的事情
AC6+AD6+(IF(H6="Yes",1,IF(J6="Yes",1,0)))+IF(X6="Yes",1,0)
Run Code Online (Sandbox Code Playgroud)
无需手动在Vim等中进行操作即可获得更具可读性的内容.Excel确实在括号上进行了颜色匹配,但它仍然在一条线上拼接在一起.
jos*_*ett 10
试试Excel Formula Beautifier http://excelformulabeautifier.com/.它漂亮的打印(又名美化)Excel公式.
(我帮助保持这一点,总是寻求反馈以使其更好.)
该 VBA 代码不会获奖,但可以快速查看典型公式。它只是执行您手动使用括号或分隔符执行的操作。将其粘贴到代码模块中并从 VBA 立即窗口命令行调用它。(编辑:我最近不得不查看一些公式,并且我对原来的答案进行了改进,所以我回来并更改了它。)
Public Function ppf(f) As String
Dim formulaStr As String
If IsObject(f) Then
Debug.Assert TypeOf f Is Range
Dim rng As Range
Set rng = f
formulaStr = rng.Formula
Else
Debug.Assert VarType(f) = vbString
formulaStr = f
End If
Dim tabs(0 To 99) As Long
Dim tabNum As Long
tabNum = 1
Dim tabOffset As Long
Dim i As Long
Dim c As String
For i = 1 To Len(formulaStr)
c = Mid$(formulaStr, i, 1)
If InStr("({", c) > 0 Then
ppf = ppf & c
tabNum = tabNum + 1
tabs(tabNum) = tabs(tabNum - 1) + tabOffset + 1
tabOffset = 0
ppf = ppf & vbCrLf & Space(tabs(tabNum))
ElseIf InStr(")}", c) > 0 Then
tabNum = tabNum - 1
tabOffset = 0
ppf = ppf & c & vbCrLf & Space(tabs(tabNum))
ElseIf InStr("+-*/^,;", c) > 0 Then
tabOffset = 0
ppf = ppf & c & vbCrLf & Space(tabs(tabNum))
Else
ppf = ppf & c
tabOffset = tabOffset + 1
End If
Next i
End Function
Run Code Online (Sandbox Code Playgroud)
如果你这样称呼它:
?ppf([q42])
Run Code Online (Sandbox Code Playgroud)
您不必担心转义双引号等。您将得到如下所示的输出:
AC6+
AD6+
(
IF(
H6="Yes",
1,
IF(
J6="Yes",
1,
0)
)
)
+
IF(
X6="Yes",
1,
0)
Run Code Online (Sandbox Code Playgroud)
您也可以使用纯字符串来调用它。
| 归档时间: |
|
| 查看次数: |
4825 次 |
| 最近记录: |