Поскольку строк, у которых нужно изменять размер, довольно много, номенклатура часто меняется, и вручную прописывать диапазон нецелесообразно, соорудил такой код: Искомые наименования находятся в столбце "B". [vba]
Код
Sub test7() With ActiveSheet Dim i&, a(), s As String, x(), n&, j& With .Range("B1", .Cells(Rows.Count, "B").End(xlUp)) a = WorksheetFunction.Transpose(.Value) End With For i = LBound(a) To UBound(a) Dim sm As Long If InStr(a(i), "Pineapple") Then sm = sm + 1 End If Next i ReDim x(1 To sm) For i = LBound(a) To UBound(a) If InStr(a(i), "Pineapple") Then n = n + 1 x(n) = "B" & i End If Next s = Join(x, ",") .Range(s).RowHeight = 22.5 End With End Sub
[/vba] Но снова ошибка в строке ".Range(s).RowHeight = 22.5".... Пишет "Run-time error '1004': Application-defined or object-defined error".
Уважаемые форумчане! Снова прошу помощи.
Поскольку строк, у которых нужно изменять размер, довольно много, номенклатура часто меняется, и вручную прописывать диапазон нецелесообразно, соорудил такой код: Искомые наименования находятся в столбце "B". [vba]
Код
Sub test7() With ActiveSheet Dim i&, a(), s As String, x(), n&, j& With .Range("B1", .Cells(Rows.Count, "B").End(xlUp)) a = WorksheetFunction.Transpose(.Value) End With For i = LBound(a) To UBound(a) Dim sm As Long If InStr(a(i), "Pineapple") Then sm = sm + 1 End If Next i ReDim x(1 To sm) For i = LBound(a) To UBound(a) If InStr(a(i), "Pineapple") Then n = n + 1 x(n) = "B" & i End If Next s = Join(x, ",") .Range(s).RowHeight = 22.5 End With End Sub
[/vba] Но снова ошибка в строке ".Range(s).RowHeight = 22.5".... Пишет "Run-time error '1004': Application-defined or object-defined error".Xpert
Сообщение отредактировал Xpert - Среда, 21.06.2023, 07:15
Sub test7() With ActiveSheet Dim i&, a, rg As Range a = .Range("B1", .Cells(.Rows.Count, "B").End(xlUp)).Value For i = 1 To UBound(a) If InStr(a(i, 1), "Pineapple") Then If rg Is Nothing Then Set rg = .Rows(i) Else Set rg = Union(rg, .Rows(i)) End If Next i If Not rg Is Nothing Then rg.EntireRow.RowHeight = 22.5 End With End Sub
Sub test7() With ActiveSheet Dim i&, a, rg As Range a = .Range("B1", .Cells(.Rows.Count, "B").End(xlUp)).Value For i = 1 To UBound(a) If InStr(a(i, 1), "Pineapple") Then If rg Is Nothing Then Set rg = .Rows(i) Else Set rg = Union(rg, .Rows(i)) End If Next i If Not rg Is Nothing Then rg.EntireRow.RowHeight = 22.5 End With End Sub