Excel 从单元格中收集数据并分配给一个范围。如何避免文本自动编号?
我想从大型工作表中收集数据并粘贴到目标范围 数据混合了数字和类似数字的字符串(例如:“0050”) 我尝试了一个变体数组来存储数据并分配给一系列单元格 以下是示例代码:Excel 从单元格中收集数据并分配给一个范围。如何避免文本自动编号?,excel,vba,Excel,Vba,我想从大型工作表中收集数据并粘贴到目标范围 数据混合了数字和类似数字的字符串(例如:“0050”) 我尝试了一个变体数组来存储数据并分配给一系列单元格 以下是示例代码: Dim z() As Variant Dim i As Integer ReDim z(1 To 3, 1 To 1) With ThisWorkbook.Sheets(1) .Cells(1, 1) = "'" & "0050" 'content from cell A, could be number or
Dim z() As Variant
Dim i As Integer
ReDim z(1 To 3, 1 To 1)
With ThisWorkbook.Sheets(1)
.Cells(1, 1) = "'" & "0050" 'content from cell A, could be number or number like string.
.Cells(3, 1) = 20 'content from cell B, could be number or number like string.
.Cells(5, 1) = "'" & "040" 'content from cell C, could be number or number like string.
For i = 1 To 3
z(i, 1) = .Cells(1 + (i - 1) * 2, 1)
Next
.Cells(1, 2).Resize(3, 1) = z
End With
Excel会自动将字符串“0050”更改为数字格式,以便单元格(1,2)中的值为50,而不是“0050”
我希望单元格的格式与最初相同,但我事先不知道每个单元格的格式
我可以使用循环将每个单元格分配给另一个单元格,但运行速度会很慢:
Dim z() As Variant
Dim i As Integer
ReDim z(1 To 3, 1 To 1)
With ThisWorkbook.Sheets(1)
.Cells(1, 1) = "'" & "0050" 'content from cell A, could be number or number like string.
.Cells(3, 1) = 20 'content from cell B, could be number or number like string.
.Cells(5, 1) = "'" & "040" 'content from cell C, could be number or number like string.
For i = 1 To 3
.Cells(i, 2) = .Cells(1 + (i - 1) * 2, 1)
Next
End With
有没有办法避免Excel自动将字符串更改为数字?另一种解决方案:
Sub test()
Dim Lastrow As Long
Dim str As String
With ThisWorkbook.Worksheets("Sheet1")
str = "00005"
With .Range("A1")
'Change cell format to TEXT before you enter value
.NumberFormat = "@"
.Value = str
End With
End With
End Sub
您可以先使用变量保存表达式的值,而不是直接设置单元格值。然后可以将单元格的值设置为文本形式的变量值。所有这些都在您已经完成的循环中written@kerweivariant数组可以存储字符串和数字,并且它将“0050”存储为字符串类型变量。但是,当我将其指定给一个范围时,它将变成数字格式。我不确定我是否误解了你的观点。单元格(1,1)=。单元格(1,2)的结果可能与我所说的相同。我尝试将一个数组分配给运行速度更快的范围,而不是逐个单元格。你知道怎么做吗?