我需要將一列字母數字值轉換爲Excel函數中的字符串。 CStr(價值)工作正常,除非值是類似於123E4。在這種情況下,Excel將該值視爲1230000並返回字符串「1230000」。使用格式(值,「#」)會得到相同的結果。我想要的結果是字符串「123E4」。將sci格式的數字轉換爲excel中的字符串
我怎樣才能得到這個?
輸入單元格從網站下載。他們使用「常規」格式。我將單元格中的值傳遞給以下函數。
Function Var2Str(varA1 As Variant, Optional strFmt As String = "#") As String
Dim strTry As String
Dim strMsg As String
Debug.Print varA1, VarType(varA1), TypeName(varA1)
strTry = CStr(varA1)
Select Case VarType(varA1)
Case vbDouble
strTry = Format(varA1, strFmt)
Case vbString
'no further action
Case Else
strMsg = "Unhandled VarType in Var2Str" _
& vbCrLf & vbTab & "vara1 = " & varA1 _
& vbCrLf & vbTab & "varType = " _
& VarType(varA1) & vbCrLf & vbTab _
& "TypeName = " & TypeName(varA1)
MsgBox strMsg, vbOKOnly, "Information"
End Select
Var2Str = strTry
Debug.Print Var2Str
端功能
包含輸入值的單元格是如何格式化的? –
將「123E4」格式化爲文本,我得到相同的值「123E4」。您可以嘗試'format(cell,cell.numberformat)',具體取決於您的單元格格式。可能有助於顯示您在上下文中使用的實際代碼。 –
他們究竟如何將它們下載到Excel中?下載的文件是如何將工作表中的單元格設置爲'General'格式的?在將數據放置在工作表上之前,您需要將單元格格式化爲文本*,或者告訴Excel將該條目作爲文本進行處理。 –