У меня есть формула, которая объединяет строки в разных столбцах. Он отлично работает, когда в каждом столбце есть данные, но если один столбец пуст, я получаю сообщение об ошибке «неправильный вызов или аргумент процедуры» для строки, сформированной пустым столбцом. Есть ли предложение, которое я могу добавить в свой код, чтобы игнорировать строку, если она пуста?Игнорировать строку, если она пуста в формуле конкатенации
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
Это, кажется, правильная идея, но я не думаю, что ** все ** строки должны быть непустыми одновременно, вероятно, лучше проверить каждый по очереди и «Trim» каждый по очереди , – asongtoruin
@asongtoruin только для обмена, иногда функция Trim также не работает по моему опыту. В этом случае мне нужно найти спецификацию char, а затем заменить их на "". – user2851376