在Excel中,如果单元格A1有一些以特定方式格式化的值,单元格B1是否有方法引用A1中显示的字符串?
澄清:
这样的事情可能吗?
答案 0 :(得分:8)
实际上,Excel将datetime
存储为number
,因此您必须明确设置单元格的格式以查看正确的值。
您可能想要使用TEXT
函数,但无论如何,您必须指定输出字符串的format
:
=TEXT(A1,"hh:mm:ss")
另一个选择是编写自己的VBA函数,它可以根据格式转换单元格的值:
Public Function GetString(ByVal cell As Range) As String
GetString = Format(cell, cell.NumberFormat)
End Function
这将根据源单元格式
给出结果答案 1 :(得分:0)
因此,由于VBA格式功能与Excel格式不兼容,因此无法正常工作。 下表显示了上面的“ GetString()”和“ GetText()”之间的区别
Public Function GetText(ByVal cell As Range) As String
GetText = Application.WorksheetFunction.Text(cell, cell.NumberFormat)
End Function
短日期和长日期很有趣-截止日期为1天。
Format Value GetString GetText GetFormat
general 3.141592638 'Ge23eral' '3.141592638' 'General'
number 3.14 '3.14' '3.14' '0.00'
Currency $3.14 '$3.14' '$3.14' '$#,##0.00'
Accounting $3.14 '_($3.14_)' ' $3.14 ' '_($* #,##0.00_);_($* (#,##0.00);_($* "-"??_);_(@_)'
Short Date 1/3/1900 '1/2/1900' '1/3/1900' 'm/d/yyyy'
Long Date Tuesday, January 3, 1900 'Tuesday, January 02, 1900' 'Tuesday, January 3, 1900' '[$-F800]dddd, mmmm dd, yyyy'
Time 3:23:54 AM '3:23:54 AM' '3:23:54 AM' '[$-F400]h:mm:ss AM/PM'
Percentage 314.16% '314.16%' '314.16%' '0.00%'
Fraction 3 2/16 '3 ??/16' '3 2/16' '# ??/16'
Scientific 3.14E+00 '3.14E+00' '3.14E+00' '0.00E+00'
Text 3.141592638 '3.141592638' '3.141592638' '@'