這與問題相反Excel中的數字格式:顯示%值而不乘以100。
我的資料格式如下,例如,原始內容為 0.75 的儲存格「意味著」75%。我正在設定一個將此類數據傳輸到另一個程式(Adobe Illustrator)的過程,如果數字包含任何符號(甚至%),則該程式就會出錯。
我想做無需任何修改內容或片材的結構,因此,沒有新列,也沒有對基礎資料進行任何更改。顯然,如果沒有這個限制,添加具有類似公式的列=A1*100
將非常容易。我想避免這些,因為這些工作表很複雜,它們是由執行此過程的人員以外的團隊維護的,並且我不希望執行此過程的人員將工作表的實際內容更改為超出易於逆轉的表示更改就像新的數位格式一樣。
是否有任何數位格式或類似的表示層修改允許我獲取儲存的資料並將其0.75, 0.5, 0.25
複製並貼上到另一個應用程式中75, 50, 25
?
神奇的「百分比」數字格式(乘以 100)似乎以自訂格式列出0.00%
,但只需刪除%
也會刪除乘法。
我發現一個部落格(Chandoo)建議#,#.#
使用[ctrl-J]等格式%
隱藏新行下方的百分號,但這對我不起作用,因為我需要用戶將輸出複製並貼上到的應用程式的乾淨輸出。
答案1
您可以使用此巨集來完成工作。但首先,您必須新增對 Microsoft Forms 2.0 函式庫的引用。按 Alt+F11 開啟 Visual Basic 編輯器,然後按一下“工具 >> 參考...”,向下捲動直到看到Microsoft Forms 2.0 Object Library
並選取它旁邊的框,然後按一下「確定」。如果您沒有看到它(它們按字母順序列出),則需要透過 dll 添加它。點擊“瀏覽...”並瀏覽並新增C:\Windows\System32\FM20.DLL
.
用法:選擇範圍(您可以選擇整個列)並透過對使用者來說最簡單的任何方法呼叫巨集。巨集運行後,資料將位於剪貼簿上。您可以建立一個按鈕,指派一個熱鍵或透過功能區手動執行它。我假設這些值都是用公式計算的,並且沒有任何空白單元格。它根本不會修改工作簿,因此如果您的用戶搞砸並選擇了錯誤的列,也不會影響您的資料。
Option Explicit
Public Sub CopyPercentAsWholeNumber()
Dim Arr() As Variant
ReDim Arr(1 To Selection.SpecialCells(xlCellTypeFormulas).Count)
Dim i As Long
With Selection
For i = 1 To UBound(Arr)
Arr(i) = .Cells(i).Value * 100
Next i
End With
Dim S As String
Dim objText As New MSForms.DataObject
S = Join(Arr, vbCrLf) & vbNewLine
objText.SetText S
objText.PutInClipboard
End Sub
答案2
快速解決
突出顯示您的數字。繼續自訂格式,輸入 0.00,然後在同一位中按 ctrl+j,然後輸入百分號。然後繼續對齊並點擊自動換行。按一下“確定”
這會隱藏 % 符號,但這意味著您可以將列名稱變更為您使用的單位。