добавление границ и удаление значений после кодов vba общей строки

#excel #vba

#excel #vba

Вопрос:

Нужна помощь с кодами vba. Я хочу иметь коды vba для добавления границы ко вторым наборам данных (в столбце R) и удаления 2 значений после общей строки (всего 4) Вот что я получил до сих пор,

 Sub Test()
Dim LastRow As Long, x As Long
LastRow = Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row
x = 2
Rows(LastRow - x   1 amp; ":" amp; LastRow).Delete
Set dat = Sheets("Table F Agencies Combined").Range("M:N")
dat.Replace What:="TRUE", Replacement:=""
End Sub
  

Теперь я могу удалить последние 2 строки и заменить TRUE ничем, но я не знаю, как удалить 2 значения после первого набора и добавить границу в столбец R для второго набора данных.

Наборы данных

исправленные данные

окончательные данные

Комментарии:

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

Ответ №1:

Я думаю, вам лучше обрабатывать каждый блок данных отдельно. Вы можете запускать этот код повторно без потери данных.

 Sub Test2()

  Dim c As Range, r As Range
' 1st block
  Set c = Range("B:B").Find("total", Range("B1"), xlValues, xlWhole, , , False)
'c.Select
  c.Offset(1).Resize(2).EntireRow.ClearContents

' 2nd block
  Set c = Range("B:B").Find("total", c, xlValues, xlWhole, , , False)
'c.Select
  c.Offset(1).Resize(2).EntireRow.ClearContents

  Set r = Intersect(c.EntireRow, Columns("R"))
  Set r = Range(r, r.End(xlUp))
  r.BorderAround xlContinuous, xlThick

End Sub
  

Комментарии:

1. спасибо, он прекрасно удаляет 4 значения, есть ли способ включить границу вокруг второго столбца набора данных R? почему-то это не отображается. Еще раз спасибо,

2. Хорошо, я изменил свой ответ, чтобы включить добавление границы. Быстро и грязно, но работает с вашим существующим макетом данных.

3. Привет, Дэйв, я думаю, что исправленный вариант сработал частично, так как я хочу, чтобы граница доходила до ячейки LR, если вы видите второе изображение, у него есть граница только вокруг чисел. Я могу исправить xlThick в xlMedium, чтобы там не было ничего особенного

4. Я включил в третью картинку то, как я хочу это представить, и, надеюсь, это быстрое решение

5. О, я вижу, что объединенная ячейка в столбце B сбивала с толку. Попробуйте модификацию.

Ответ №2:

В вашем коде было несколько ошибок (синтаксические ошибки, логические ошибки). Я исправил их для вас.

 Sub Test()
    Dim dat As Range: Set dat = Sheets("Table F Agencies Combined").Range("M:N")
    Dim LastRow As Long, x As Long
    Dim myCell As Variant

    LastRow = Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row
    x = 2
    Rows(LastRow - x   1 amp; ":" amp; LastRow).Delete

    For Each myCell In dat
        myCell.Value = Replace(UCase(myCell.Value), "TRUE", "")
    Next myCell
End Sub