我正在嘗試構建一個收費來進行數據分析。我想編寫一個文本框,它將顯示組合我選擇的每個單元格的結果的值。例如:單元格A1包含值「2」,單元格B1包含值「3」,單元格C1爲= A1 * B1,所以「6」。我想添加一個文本框,當我選擇單元格C1時,將顯示文本「2 * 3」而不是「A1 * B1」,如同在公式欄中所示。有誰知道如何去做?在文本框中打印方程組件 - excel vba
0
A
回答
1
您將要面臨的挑戰是:there is no such thing as a "formula" object in the Excel object model,因爲公式是一串基本上是任意長度和構造的字符串,任意級別的嵌套和單元格引用/先例,每個嵌套和單元格可能包含一個公式需要一些遞歸)或常量等。沒有「一般」的方法來解析這些東西,但正如鏈接的答案所指出的,有一些工具可以做類似的事情。
如果您有特定的個案,您可能會破解某些適用於這些案例的功能,但不會適用於其他公式。使用範圍對象的.DirectPrecendents
,可以跟蹤公式中引用的單元格,並且可以使用一些字符串函數將公式逆向設計爲常量表達式,並與操作符重新組合。但是,我自己的測試顯示這是充滿了問題,因爲這些公式將返回DirectPrecedents
相同的列表:
=$A1*$B1
=$A$1*$B$1
=$A$1*B1
=A1*B1
在這種情況下(及其他),先例將成爲該範圍A1和B1,但這些變體中的每一個都要求您可以在運行時識別每個先例中的行和/或列是否爲「絕對」,否則,任何使用字符串函數(如Mid
,Left
和Instr
)的嘗試都可能失敗或返回誤報。
如果你的公式是非常簡單,你知道你一直在處理中的引用,每一個都包含常量表達式(而不是其他配方refernces),例如:
= $ A $ 1 * B $ 1 「如果A1包含一個常數,所以不B1
你可以這樣做:
Function parseFormula(cl as Range, operator as String)
Dim arr, i As Long
Dim ret As String
ret = "="
arr = Split(Mid(cl.Formula, 2), operator)
' yields an array like {$A$1, $B1}
For i = 0 To UBound(arr)
If (i = 0) Then
ret = ret & Range(arr(i)).Value
Else
ret = ret & operator & Range(arr(i)).Value
End If
Next
parseFormula = ret
End Function
當然,這不會對式混合運營商如工作:
=A1+B1/C1
也不會對式混合其中常量和引用類似工作:
=65+B2/C1
相關問題
- 1. 以編程方式打印excel文件
- 2. excel宏VBA搜索和打印文件
- 3. Excel VBA - 檢查一組文本框
- 4. Excel 2013在VBA中打印爲PDF
- 5. 如何在Excel VBA中更快打印?
- 6. VBA - 在Excel中漂亮打印一行
- 7. VBA在excel中停止打印值
- 8. 從Powerpoint在VBA中打開Excel文件
- 9. 從excel vba打印word文檔
- 10. 在VBA中打開本地JSON文件
- 11. Excel VBA 2013打印圖像
- 12. VBA Excel禁用打印
- 13. Excel VBA和VB6打印機
- 14. 文本框條件格式 - Excel VBA
- 15. Excel VBA - 形狀文本框OnChange事件
- 16. 以編程方式在VBA中添加組合框(Excel)
- 17. VBA打開Excel文件
- 18. 在asp.net中打印Excel文件
- 19. 使用VBA從Excel文件中的powerpoint打印內容
- 20. 使用VBA在Outlook 2007中以編程方式打印文檔
- 21. 打印到文本框的方法
- 22. VBA Excel中的組合框
- 23. 在excel vba中打印和打印預覽事件之間的區別
- 24. 在C中打印文本框內容#
- 25. excel vba中的打印範圍
- 26. Excel VBA:在打印前增加一行
- 27. 打印文件的Excel C#
- 28. 打印excel文件c#
- 29. C#EPPLUS - 打印excel文件
- 30. 在Excel VBA中跨域文件副本
如何將複雜的公式是什麼?你到目前爲止嘗試過什麼? –
該公式不會那麼複雜,幾乎都是百分比,數據都在同一張工作表中,我創建了一個宏來顯示百分比並隱藏值,因爲基數非常混亂。其實,我有很多問題,我想過使用「評估公式」函數和打印值,但是我不知道如何將它用在編程語言中。 –