Пропуск одной строки кода в цикле: wholerow.delete в другой книге

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

String str = "Hello-World:How\nAre You&doing";
inputs = str.split("(?!^)\\b");
for (int i=0; i<inputs.length; i++) {
   System.out.println("a[" + i + "] = \"" + inputs[i] + '"');
}

OUTPUT:

a[0] = "Hello"
a[1] = "-"
a[2] = "World"
a[3] = ":"
a[4] = "How"
a[5] = "
"
a[6] = "Are"
a[7] = " "
a[8] = "You"
a[9] = "&"
a[10] = "doing"

Я использую только границу слова \b, чтобы разграничить слова , кроме , когда это начало текста.

1
задан Baksi 18 January 2019 в 14:55
поделиться

2 ответа

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

0
ответ дан Tom 18 January 2019 в 14:55
поделиться

Удалить строки (столбец критериев)

Версия для союза

Sub DelRows()

    Const cSheet As Variant = 1     ' Worksheet Name/Index
    Const cFirst As Long = 1        ' First Row Number
    Const cColumn As Variant = "C"  ' Criteria Column Letter/Number

    Dim rngU As Range   ' Union Range
    Dim LastUR As Long  ' Last Used Row
    Dim r As Long       ' Row Counter

    With ThisWorkbook.Worksheets(cSheet)

        ' Check if worksheet is empty.
        If .Cells.Find("*", .Cells(.Rows.Count, .Columns.Count), -4123, , 1) _
                Is Nothing Then Exit Sub
        ' Calculate Last Used Row.
        LastUR = .Cells.Find("*", , , , , 2).Row

        ' Add found criteria first (can be any) column cells to Union Range.
        For r = cFirst To LastUR ' Rows
             If IsEmpty(.Cells(r, cColumn)) Then
                 If Not rngU Is Nothing Then
                     Set rngU = Union(rngU, .Cells(r, 1))
                   Else
                     Set rngU = .Cells(r, 1)
                 End If
             End If
        Next

    End With

    ' Delete rows in one go.
    If Not rngU Is Nothing Then
        rngU.EntireRow.Delete ' .Hidden = True
        Set rngU = Nothing
    End If

End Sub
0
ответ дан VBasic2008 18 January 2019 в 14:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: