Вопрос

Я бы дал полное описание, но все необходимое уже было сказано в этом вопросе двухлетней давности, который остался совершенно нерешенным:

Запись строки в ячейку в Excel

Моя программа настолько проста, насколько это возможно:

`Sub separate()
Dim stri As String
Dim i As Long
stri = Sheets("HEXDUMP").Cells(1, 5).Text
For i = 0 To (Len(stri) / 4)
    Sheets("HEXDUMP").Cells(i, 1).Value = Mid(stri, ((i * 2) + 1), 2)
    Sheets("HEXDUMP").Cells(i, 2).Value = Mid(stri, ((i * 2) + 3), 2)
Next i
End Sub`

Все, что мне нужно, это взять строку и разбить ее на ячейки по два символа в каждой.Конечно, все работает отлично, за исключением того, что он не будет записывать в ячейку, что бы вы с ней ни делали.Я попробовал снять защиту. Я попробовал .text. Я попробовал создать новый лист, перезапустив его.Это ошибка в Excel, и все, что мне нужно на данный момент, — это обходной путь.

Это было полезно?

Решение

У вас ошибка в коде.

Для i = 0, т.е.первой итерации вашего цикла, следующий код выдаст ошибку:

... .Cells(i, 1) ...
... .Cells(i, 2) ...

как нет строки 0.Измените его на:

... .Cells(i + 1, 1) ...
... .Cells(i + 1, 2) ...

и это сработает.Не уверен, что это именно то, что вам нужно, но, по крайней мере, это не выдаст ошибку.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top