Выберите самый маленький диапазон? - PullRequest
0 голосов
/ 16 ноября 2018

Я работаю с VBA, которая должна формировать выбранный диапазон ячеек, и только активные ячейки в выделении.

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

Есть ли способ выбрать диапазон, который содержит наименьшее количество ячеек.В этом случае, чтобы увидеть, какие из rng и rng1 являются «наименьшими».

Sub FormatColumn()
Dim rngMyRange As Range
Dim rng As Range
Dim Start As Range
Set rngMyRange = Selection
Dim A As Range, B As Range

With rngMyRange
    i = .Rows(1).Row
    j = .Columns(1).Column
    ii = .Rows(.Rows.Count).Row
    jj = .Columns(.Columns.Count).Column
End With

Set A = Cells(i, j)
Set B = Cells(ii, jj)
Set C = Cells(i, jj).End(xlDown)

Set rng = Range(A, B)
Set rng1 = Range(A, C)

With rng
    .Font.Bold = True
End With

With rng1
    .Interior.ColorIndex = 20
End With

End Sub

Следовательно, я просто хочу иметь одно из двух правил форматирования в конце (разделить вот такчтобы увидеть, что происходит с двумя диапазонами) и отформатировать диапазон только с наименьшим количеством ячеек в нем.

1 Ответ

0 голосов
/ 16 ноября 2018

с помощью @ SRJ

Sub FormatColumn()
Dim rngMyRange As Range
Dim rng As Range
Dim Start As Range
Set rngMyRange = Selection
Dim A As Range, B As Range, rng1 As Range, C As Range
Dim i As Long, j As Long, ii As Long, jj As Long

With rngMyRange
    i = .Rows(1).Row
    j = .Columns(1).Column
    ii = .Rows(.Rows.count).Row
    jj = .Columns(.Columns.count).Column
End With
Debug.Print i, j, ii, jj
Set A = Cells(i, j)
Set B = Cells(ii, jj)
Set C = Cells(i, jj).End(xlDown)

Set rng = Range(A, B)
Set rng1 = Range(A, C)

If rng.count < rng1.Count Then
    With rng
    .Font.Bold = True
End With
Else
With rng1
    .Interior.ColorIndex = 20
End With
End If

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...