У меня есть набор данных, в котором мне нужно передать данные, чтобы они соответствовали формату, который используется для интерпретации этих данных. Для этого мне нужно объединить два столбца данных в один столбец. Для этого я вставляю данные второго столбца ниже данных в первом столбце.
Для этого я сначала добавляю необходимое количество пустых строк в нужное место.
Затем мне нужно продублировать легенду, которая сопровождает эти данные. Легенда имеет два столбца: один с идентификаторами вопросов, а другой с вопросами.
При дублировании этой легенды происходит неявное преобразование типов, которое является нежелательным.
Я использую следующий код для дублирования легенды:
Dim j as long
For j = 1 To numberrows_kennis
wss.cells(lastrow_kennis + j , 1) = wss.cells(row_kennis -1 + j , 1).Value
wss.cells(lastrow_kennis + j , 2) = wss.cells(row_kennis -1 + j , 2).Value
Next j
В этом коде все переменные явно объявлены как соответствующий тип (worksheet
для wss, Long
для переменных, связанных со строкой)
Когда я запускаю этот код, большая часть копирования идет правильно, за исключением одного значения.
Существует значение 3.2
, которое хранится в виде строки, так как я использую европейскую версию Excel. Когда я копирую это, оно преобразуется в десятичное значение вместо строки: 3,2
.
Остальная часть диапазона, подлежащего копированию, является значениями типа Long
, которые не следует преобразовывать в строковые значения.
Происходит ли это преобразование типов из-за моего использования .Value
? И если да, то как избежать такого поведения?