Я хочу собрать данные из большого листа и вставить в целевой диапазон.
Данные смешиваются с числом и числом, как строка (например: "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
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».
Я хочу, чтобы формат ячейки был таким же, как был изначально, но я заранее не знаю формат каждой ячейки.
Я могу использовать al oop, чтобы назначить каждую ячейку другой, но скорость работы будет низкой:
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 в Excel?