2016-02-26 2 views
-1

У меня есть формула, которая объединяет строки в разных столбцах. Он отлично работает, когда в каждом столбце есть данные, но если один столбец пуст, я получаю сообщение об ошибке «неправильный вызов или аргумент процедуры» для строки, сформированной пустым столбцом. Есть ли предложение, которое я могу добавить в свой код, чтобы игнорировать строку, если она пуста?Игнорировать строку, если она пуста в формуле конкатенации

Sub Concatenation_for_the_nation() 

'Range("H2").End(xlDown).Select 
Cells(rows.Count, "H").End(xlUp).Select 
For i = 1 To ActiveCell.Row 
    Range("H" & i).Select 
    StrStrONE = StrStrONE & "" & Selection 
Next i 
Cells(1, 1).Select 

'Range("I2").End(xlDown).Select 
Cells(rows.Count, "I").End(xlUp).Select 
For j = 1 To ActiveCell.Row 
    Range("I" & j).Select 
    StrStrTWO = StrStrTWO & "" & Selection 
Next j 
Cells(1, 1).Select 

'Range("J2").End(xlDown).Select 
Cells(rows.Count, "J").End(xlUp).Select 
For k = 1 To ActiveCell.Row 
    Range("J" & k).Select 
    StrStrTHREE = StrStrTHREE & "" & Selection 
Next k 
Cells(1, 1).Select 

'Range("K2").End(xlDown).Select 
Cells(rows.Count, "K").End(xlUp).Select 
For l = 1 To ActiveCell.Row 
    Range("K" & l).Select 
    StrStrFOUR = StrStrFOUR & "" & Selection 
Next l 
Cells(1, 1).Select 

StrStrONE = Trim(StrStrONE) 
StrStrTWO = Trim(StrStrTWO) 
StrStrTHREE = Trim(StrStrTHREE) 
StrStrTHREE = Left(StrStrTHREE, Len(StrStrTHREE) - 3) 
StrStrFOUR = Trim(StrStrFOUR) 
StrStrFOUR = Left(StrStrFOUR, Len(StrStrFOUR) - 3) 

Cells(14, 7) = "(ISAV(" & StrStrONE & " " & StrStrTWO & " " & StrStrTHREE & ")=1 OR (" & StrStrFOUR & ")=1)=1" 


Cells(14, 7).Select 



End Sub 

ответ

0

Вы можете проверить, если столбцы не являются пустыми, используя ISBLANK() функции

0

Как user2471313 сказал использовал функцию ISBLANK() или я хотел бы добавить что-то вроде этого для проверки строки:

+0

Это, кажется, правильная идея, но я не думаю, что ** все ** строки должны быть непустыми одновременно, вероятно, лучше проверить каждый по очереди и «Trim» каждый по очереди , – asongtoruin

+0

@asongtoruin только для обмена, иногда функция Trim также не работает по моему опыту. В этом случае мне нужно найти спецификацию char, а затем заменить их на "". – user2851376

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