Excel-VBA: невозможно вставить разрывы строк

Мне нужно вставить строки в ячейку, но я не могу вставить разрывы строк.

Например :

строка 1

line2

line3

С кодом VBA:

             Ws.Cells(i, 2) = line1 & line2 & line3

Я получил :

строка1 строка2 строка3

Как я могу решить эту проблему?


person Wassim AZIRAR    schedule 27.05.2012    source источник
comment
есть line1, line2, line3 строки? без переносов строк естественно в них?   -  person Brad    schedule 27.05.2012


Ответы (5)


Это то, что вы пытаетесь?

Ws.Cells(i, 2).Value = "line1" & vbnewline & "line2" & vbnewline & "line3"

or

Ws.Cells(i, 2).Value = "line1" & vbCrLf & "line2" & vbCrLf & "line3"

РЕДАКТИРОВАТЬ: вставлены цитаты, как указано в моих комментариях.

person Siddharth Rout    schedule 27.05.2012
comment
Если строка1 является текстом, заключите их в кавычки, например, строка1 и vbnewline & line2 и vbnewline & line3 - person Siddharth Rout; 27.05.2012

Я протестировал несколько комбинаций и вот результаты:

cell(a,b) = line1 & vbCrLf & line2

результат:
строка1 **
строка2

cell(a,b) = line1 & vbCr & line2

результат:
line1line2

cells(a,b) = line1 & vbLf & line2

результат:
строка1
строка2

В приведенных выше результатах * обозначает пустое пространство (я не знаю почему), поэтому vbCrLf не рекомендуется, если вы хотите центрировать содержимое ячейки по горизонтали. Я предпочитаю vbLf.

person jhfelectric    schedule 29.11.2012

Разрывы строк в VBA равны vbCrLf, и вы можете объединить их со строками.

person Ricardo Souza    schedule 27.05.2012

Ws.Cells(i, 2) = line1 & line2 & Chr(10) & line3

Согласно этому ответу.

person Holf    schedule 27.05.2012

К вашему сведению, вы можете предотвратить опечатки в коде, используя более легкое для ввода имя переменной.

bx = vbCrLf

textstring = "Hello everybody!" & bx & "This is my second line!"
person joshoff    schedule 28.05.2012
comment
Это затруднит чтение вашего кода, поскольку вы идете вразрез с тем, что ожидал бы читатель, поэтому не рекомендуется вообще. - person aevanko; 28.05.2012