Очистить все ячейки из определенного диапазона, который начинается со следующей пустой ячейки в столбце A - PullRequest
0 голосов
/ 06 февраля 2020

Я пытаюсь написать несколько VBA в Excel, которые будут очищать все ячейки, начиная со следующей пустой ячейки в столбце A (данные начинаются с A2). Например, если A5 пустое, то я хочу, чтобы A5: P300 все были очищены (как во всех формулах и данных, которые были удалены). И так далее ... поэтому, если A20 пуст, то он удаляет все из A20: P300 ..

Как мне go написать это? Мне также нужно, чтобы он ссылался на активную рабочую книгу, но конкретный c рабочий лист называется ("Develop").

Спасибо за любую предоставленную помощь.

Sub Clear()

Dim x As Worksheet
Dim rng, cell As Range

Set x = ThisWorkbook.Worksheets("R&DCosts(2)")

Set rng = x.Range("A2:A340").Cells(Rows.Count, 1).End(xlUp)

  For Each cell In rng
   If cell.Value = "" Then

      x.Range(cell.Address & ":P350").ClearContents
      End

    End If

  Next cell

 End Sub

Ответы [ 2 ]

1 голос
/ 06 февраля 2020

Более простое решение

Option Explicit

Sub Clear()

 Dim x As Worksheet
 Dim rng, cell As Range

 Set x = ThisWorkbook.Worksheets("RDCosts(2)") ' you cannot use "&"

 Set rng = x.Range("A2:A340", Cells(Rows.Count, 1).End(xlUp))

 For Each cell In rng
    If cell.Value = "" Then

        x.Range(cell.Address & ":P350").ClearContents
        End

    End If

 Next cell

 End Sub
1 голос
/ 06 февраля 2020

Попробуйте этот код, пожалуйста:

Sub clearRange_Bis()
  Dim sh As Worksheet, firstEmpt As Long
  Set sh = ThisWorkbook.Worksheets("R&DCosts(2)")
  firstEmpt = sh.Range("A1").End(xlDown).Row + 1
    If firstEmpt > 1000000 Then
        sh.Range("A2:P300").Clear
    Else
        sh.Range("A" & firstEmpt  & ":P300").Clear
    End If
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...