Скопируйте данные на временный лист, пропуская столбцы

#excel #vba

Вопрос:

Исходный код работает. При изменении, чтобы пропустить копирование столбцов, я получаю ошибку.

Я хотел бы пропустить некоторые столбцы при копировании на временный лист для электронной почты.

Оригинальный код.

 ' header row
Set ws = wb.Worksheets("New_IDs")
With wsBody.Range("A1:N1")
    .Value2 = ws.Range("B2:O2").Value2
    .Font.Bold = True
End With
iMailRow = 1
 

Измененный кодекс.

 ' header row
Set ws = wb.Worksheets("New_IDs")
With wsBody.Range("A1:N1")
    .Value2 = ws.Range("B2:J2" And "N2:O2").Value2 
    .Font.Bold = True
End With
iMailRow = 1
 

Комментарии:

1. @Luuk я все еще получаю ошибку, и она по-прежнему копирует все значения между столбцами

2. Я предполагаю, что ваш измененный код содержит 2 диапазона ячеек, поэтому вам, вероятно, придется сделать это дважды, т. Е. wsBody.Range("A1:I1").Value2 = ws.Range("B2:J2").Value2 Тогда wsBody.Range("J1:K1").Value2 = ws.Range("N2:O2").Value2

3. Поскольку ваш диапазон не является непрерывным, он состоит из разных .Areas областей ; каждая область представляет собой единый непрерывный диапазон (всего два, в вашем примере используется синтаксис, предложенный @luuk). .Value2 , затем возвращает только значения из первой области. Вам нужно будет повторить области или повторить процесс, как предлагает @Raymond Wu.

4. Привет Реймонд и pdtcaskey ваше предложение сработало, однако оно работает с заголовком, но теперь фактическое значение данных, в которое оно копируется; iMailRow = iMailRow 1 ws.Диапазон(«B» amp; i amp; «:O» amp; i). Скопируйте wsBody. Диапазон («A» и iMailRow) строк. Добавить i, CStr(i)

5. или как скрыть столбцы между двумя диапазонами, прежде чем они будут скопированы в HTML-файл электронной почты

Ответ №1:

Скопируйте каждый смежный диапазон отдельно

   imailrow = imailrow   1
   ws.Range("B" amp; i amp; ":J" amp; i).Copy wsbody.Range("A" amp; imailrow)
   ws.Range("N" amp; i amp; ":O" amp; i).Copy wsbody.Range("J" amp; imailrow)
   Lines.Add i, CStr(i)
 

Комментарии:

1. Привет, это сработало большое спасибо за CDP1802 и Реймонда