P.J*_*P.J 3 excel vba excel-formula
我有大量具有不同数字格式的数字。我想将数组中的所有数字(包括其格式)更改为文本字符串(以便将“$”等格式字符存储为每个单元格中的字符串,而不是应用格式的整数)。
目标是能够存储这些格式化的字符串,以便我以后可以直接访问它们(即使用 R 或 Python 或 mailmerge),同时保持所有数字格式易于使用。
在下图中,您可以看到存储的值实际上是 1001(作为数值)。
我想要一种方法来更改值数组(即 C2、D2 和 E2)以匹配下面单元格 C4 中显示的格式。在此格式中,所有格式字符都存储为文本字符串,而不是数字格式。方程栏正确显示该值为文本字符串“$1,001”。
粘贴为值或粘贴为具有数字格式的值不会产生所需的结果。在 VBA 中使用 .text 读取单元格值和数字格式,但不会根据需要将数字和格式字符(“$1,001”)转换为字符串。将数据复制到记事本中,然后复制回 Excel 中确实会产生所需的结果。
Excel 中有没有一种方法(如果需要,使用 VBA)将格式化数字数组更改为文本字符串,如上所述?
创建一个字符串数组,然后将.Text范围格式化为文本并将数组粘贴回来:
Sub ttt()
Dim rng As Range
Set rng = ActiveSheet.Range("A1:A10")
Dim t() As String
ReDim t(1 To rng.Rows.Count, 1 To rng.Columns.Count) As String
Dim i As Long
For i = 1 To UBound(t, 1)
Dim j As Long
For j = 1 To UBound(t, 2)
t(i, j) = rng.Cells(i, j).Text
Next j
Next i
rng.NumberFormat = "@"
rng = t
End Sub
Run Code Online (Sandbox Code Playgroud)
前:
后:
| 归档时间: |
|
| 查看次数: |
570 次 |
| 最近记录: |