Добрый день! Очень нужна ваша помощь. Есть таблица из 12 столбцов. В строке есть пустые и заполненные ячейки. Нужно вывести результат по каждой строке так, чтобы заполненные ячейки имели присвоенный в шапке таблицы номер, а пустые ячейки отображались нулями… Например: 00.00.03.00.05.06.00.00.00.00.00.00 т.е. из 12 столбцов не пустые 3, 5 и 6. Или, например: 2-й вариант попроще: из 12 столбцов не пустые 3, 5 и 6 => 03.05.06
Sub pust()
Dim lc As Long
Dim rng1 As String
Dim rng2 As String
Dim rng3 As String
Dim rng4 As String
lc = Worksheets("Лист1").Cells(4, Columns.Count).End(xlToLeft).Column
rng1 = Cells(14, lc).Value
For a = 2 To lc - 1
If Cells(14, a) <> "" Then
rng1 = rng1 & "." & Cells(13, a)
Else: GoTo Line1
End If
Line1:
Next
Cells(14, lc).Value = rng1
If Left(Cells(14, lc), 1) = "." Then Cells(14, lc) = Right(Cells(14, lc), Len(Cells(14, lc)) - 1)
rng2 = Cells(15, lc).Value
For a = 2 To lc - 1
If Cells(15, a) <> "" Then
rng2 = rng2 & "." & Cells(13, a)
Else: GoTo Line2
End If
Line2:
Next
Cells(15, lc).Value = rng2
If Left(Cells(15, lc), 1) = "." Then Cells(15, lc) = Right(Cells(15, lc), Len(Cells(15, lc)) - 1)
rng3 = Cells(19, lc).Value
For a = 2 To lc - 1
If Cells(19, a) <> "" Then
rng3 = rng3 & "." & Cells(18, a)
Else: rng3 = rng3 & ".00"
End If
Next
Cells(19, lc).Value = rng3
If Left(Cells(19, lc), 1) = "." Then Cells(19, lc) = Right(Cells(19, lc), Len(Cells(19, lc)) - 1)
rng4 = Cells(20, lc).Value
For a = 2 To lc - 1
If Cells(20, a) <> "" Then
rng4 = rng4 & "." & Cells(18, a)
Else: rng4 = rng4 & ".00"
End If
Next
Cells(20, lc).Value = rng4
If Left(Cells(20, lc), 1) = "." Then Cells(20, lc) = Right(Cells(20, lc), Len(Cells(20, lc)) - 1)
End Sub
К сожалению это не совсем то, что нужно. По сути там сцепка с условиями. Да, мне нужна сцепка, но с заменой пустых ячеек на 00. И заполненных ячеек - замена на наименование шапки данного столбца
Hellmaster написал: так вам нужно и значение ячейки изменить и в результат вывести или только в результат вывести?
Да, верно. В ячейке по строке может быть всё что угодно. А результат должен выводиться по столбцу шапки таблицы... т.е. если по столбцу "В" в шапке данного столбца стоит 01, то должно браться 01. и т.д. аналогично. столбец А - пусто (в шапке присвоено 00) столбец В - есть значение (в шапке присвоено 01) столбец С - пусто (в шапке присвоено 02) столбец D - есть значение (в шапке присвоено 03) столбец E - пусто (в шапке присвоено 04)