2015-03-26 4 views
0

Я работаю над генерацией отчета excel с использованием кода vba. Я новичок в этом. Просто хотел знать, нужно ли мне объединять какой-либо конкретный диапазон столбцов/ячеек, но не уверен, откуда они начинаются, но всегда заканчивается после 5 ячеек.Объединить ячейки в Excel

Ниже мой код:

ShtReport.Cells(7, col + 1).Value = RS("Fund") 

из предыдущей строки, значение создается в 7-й строке и скажем значение цв 6, то выше линии установит значение в седьмой строке 7 столбца. Но мне нужно, чтобы он объединил ячейки с 7-го по 12-й и вместе с текстом.

Пожалуйста, помогите мне в решении этого вопроса.

+0

вам необходимо физически объединить пять ячеек Do поэтому после этого слияния вместо пяти ячеек у вас есть одна большая ячейка? Или вам просто нужно написать одно общее значение для этих пяти ячеек сразу? Вам не нужно физически объединять ячейки, чтобы написать им общую ценность. ИМХО слияние клеток - это зло :-). – dee

+0

Слияние клеток - это работа дьявола - всегда есть лучшая альтернатива. –

ответ

0

Пожалуйста, попробуйте использовать следующий код.

Это объединит 5 ячеек по горизонтали. Можно изменить 7 к номеру строки и добавить 5 во второй части, как я добавил 6 ниже, чтобы объединить вертикально

Col + 6 = Обеспечивает 5 ячеек вправо от Col + 1 объединяются

Range(Cells(7, Col + 1), Cells(7, Col + 6)).Merge 
0

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

range(ShtReport.Cells(7, col + 1), ShtReport.Cells(7, col + 6)) 

Слить, вызывайте .merge

range(ShtReport.Cells(7, col + 1), ShtReport.Cells(7, col + 6)).merge 

Если вы хотите получить фантазии и сделать больше, форматирование с помощью того же диапазона, то вы можете использовать с блоком и держать его ищет аккуратным.

with range(ShtReport.Cells(7, col + 1), ShtReport.Cells(7, col + 6)) 
    .merge 
    .HorizontalAlignment= xlCenter 
end with 
0

Вы можете использовать метод Resize() расширить диапазон, в настоящее время используют для заданного количества строк/столбцов, как так:

ShtReport.Cells(7, col + 1).Resize(1, 6).Value = RS("Fund") 
'// Resize(1, 6) = Resize to 1 row and 6 columns 

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