在Excel中将“会计”格式的数字转换为文本
这是交易。 我正在使用基于代码的高级filter来执行数据库search。 标准(由代码生成)将所有数据视为文本,并将*附加到所input内容的前端和后端,以便于部分查找。
我的一个领域(只有一个,在数据中间,其他方面难以区分)被格式化为“会计”。 我想将其格式化为文本,以便查询。 但是,当我使用TEXT()函数来尝试和格式化它(在任何其他情况下,我需要数字存储为文本),它不会接受“会计”作为其中一个预设。 此外,如果我试图从Excel自己的自定义格式表格复制粘贴格式,如下所示:_(*#,## 0.00 _); _(*(#,## 0.00); _(*“ – ”? ? ); (@_),然后在单元格中出现#VALUE错误。
通过select性地修剪该格式string,我已经到了不再出现错误,但无法获得列中的数字alignment的十进制(这是会计格式的一点)。
请帮忙。
你会得到#VALUE错误,因为格式string中有双引号。 如果你使用
=TEXT(B2,"_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)")
与双引号逃脱(通过加倍),你不会得到错误。 但是你不会得到期望的结果。 数字格式和TEXT函数将产生什么之间有一些细微的差异。 我不知道他们是什么,但是这是一个。
你有一个select是写自己的function。 此function将会计格式化的数字转换成一个string,并保留货币符号和第一个数字之间的空格。
Public Function GetRealText(Cell As Range) As String Application.Volatile GetRealText = Cell.Cells(1).Text End Function
虽然有一个问题。 如果调整列的大小,Range.Text属性将会改变,但是这个函数不会自动更新。 即使是易失性的,列宽变化也不会触发重新计算。 你必须手动重新计算,否则其他东西将不得不触发它。
您可以使用'
前缀'
作为文本来input数字,date或任何值:
Cells(1, 1) = "'" & MyNumber