我需要将一列字母数字值转换为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将该条目作为文本进行处理。 –