2014-03-10 1 views
2

Я пытаюсь напечатать значение в ячейке, которая содержит строку Seperator как ALT + ENTER или Char(10). Все до сих пор просто печатает свой текст так, чтобы он печатает значения, которые я хочу, чтобы обернуть в первенствуешь в различных клеткахсимвол новой строки в Excel при печати из vb.net

В моем vb.net коды я продолжать строить строку, как я проходные отчеты и я попытался vbcrlf, vblf и т.д. чтобы попытаться имитировать ALT +ENTER запись в Excel, используя что-то похожее на ниже

_string = _string & vbcrlf & report.name &" " & _pctstatus &"%" 

, а затем я вставить эту строку в A1, используя

Clipboard.SetDataObject(_string.ToString, False) 
aRange.Select() 
aWorkSheet.Paste() 

На картинке вы можете видеть, что я продолжаю получать значения в A3, но я действительно хочу результат A1

Excel output

я могу обойти эту проблему путем структурирования моего текста, как формулы, так что Char(10) находится в но я бы предпочел просто ввести строковое значение и не иметь формул. Я также должен сделать это, поскольку меня ограничивает количество свободных ячеек в отчете excel, так как я добавляю этот лист excel, который уже заселен уже

+2

Не знаком с .net, но я не думаю, что проблема в строковой структуре. Либо vbLF, либо VBcrlf должны работать как разделитель. Если aRange установлен в A1, вы можете что-то сделать в .net, например aRange.value = string? Вместо прохождения последовательности select/clipboard/copy/paste? –

+0

@RonRosenfeld 'aRange.Value = _string.ToString' будет работать. Это всего лишь фрагмент более крупной строки, вставленной в шаблонную книгу. Я предпочел бы избежать необходимости контролировать, какие ячейки мне нужно будет переопределить вручную. Но, как вы говорите, я подозреваю, что я могу быть принужден к этому варианту, учитывая строковую структуру – TylerDurden

ответ

1

Так какой-то особый смысл использовать буфер обмена? Если бы не попробовать это:

aRange.Value = _string.ToString 
+0

'aRange.Value = _string.ToString' будет работать. Это всего лишь фрагмент более крупной строки, вставленной в шаблонную книгу. Я бы предпочел не следить за тем, какие ячейки мне нужно будет переопределить вручную, поскольку это может произойти любое количество раз во время процесса. – TylerDurden

0

ли формат ячейки набора, чтобы несколько строк (Wrap Text)?

+0

Да, проблема в том, что значения будут помещаться в ячейку ниже, а не обертывать текст в нужную ячейку. – TylerDurden

0

Просто используйте vbLf вместо vbCrLf.

+0

пробовал этот ... тот же результат, что и 'vbCrLf' – TylerDurden

+0

Странно: я просто попробовал его в Excel, от VBA, и он дает соответствующий результат. Не можете ли вы просто написать диапазон, а не пройти через буфер обмена? Редактировать: точно так же, как @Ron Розенфельд предложил –

+0

Я просто дважды проверил хмммм. Я догадался, так как вы можете вставлять завернутый текст в 'VBA', должно быть некоторое сходство в' vb.net'. Я могу сделать это как @Ron Rosenfeld, но мне придется затем контролировать, какие ячейки я ввожу эти значения, а затем переопределять значения в конце метода. В некоторые дни это может означать перезапись сотен ячеек. Бит беспорядок и надеется на более элегантное решение. благодаря – TylerDurden

 Смежные вопросы

  • Нет связанных вопросов^_^