Форум по VBA и MS Office

Word => Макросы в Word => Тема начата: Посетитель 16.08.2024 от 16 августа 2024, 08:22

Название: Пропуск пустой ячейки в таблице
Отправлено: Посетитель 16.08.2024 от 16 августа 2024, 08:22
Есть таблица в worde, состоящая из 6 столбцов.
Все ячейки 4 столбца умножаются на все ячейки 5 столбца (последовательно) и результат записывается в 6 столбец.
Если в ячейке 4 столбца (любой хоть 1 хоть 4) пусто - то нужно просто пропускать умножение и переходить к другой и так далее.

Как пофиксить данный кусок кода?

Спойлер
For ROW2 = 2 To targetRow - 1
   
    cellV1 = ActiveDocument.Tables(2).cell(ROW2, 5).Range.Text  'все значения пятого стобца
    cellV1 = Replace(cellV1, Chr(7), "")

   
    If cellV1 <> "" Then
        numberV1 = CDbl(cellV1)
    Else: GoTo SkipRow
    End If

   
    cellV2 = ActiveDocument.Tables(2).cell(ROW2, 4).Range.Text 'все значения 4 стобца
    cellV2 = Replace(cellV2, Chr(7), "")

   
    If cellV2 <> "" Then
   
        numberV2 = CInt(cellV2)
        V = numberV1 * numberV2
        formattedV1 = format(V, "###,##0.00")
        ActiveDocument.Tables(2).cell(ROW2, 6).Range.Text = formattedV1
   
    Else: GoTo SkipRow
   
    End If

SkipRow:
Next ROW2
[свернуть]
Название: Пропуск пустой ячейки в таблице
Отправлено: Администратор от 16 августа 2024, 10:42
Цитата:
Если в ячейке 4 столбца (любой хоть 1 хоть 4) пусто

Достаточно посмотреть одну ячейку или надо все четыре ячейки посмотреть?
Название: Пропуск пустой ячейки в таблице
Отправлено: Посетитель 16.08.2024 от 16 августа 2024, 10:47
нужно просмотреть произвольное количество ячеек - то есть их может быть сколько угодно
Название: Пропуск пустой ячейки в таблице
Отправлено: Администратор от 16 августа 2024, 10:54
Если в столбце 4 пусто, то не делать вычисление в этой строке?
Название: Пропуск пустой ячейки в таблице
Отправлено: Посетитель 16.08.2024 от 16 августа 2024, 10:56
да, просто переходить к следующей, если в столбце нигде нет значений то просто пропусть весь столбец, типо того
Название: Пропуск пустой ячейки в таблице
Отправлено: Администратор от 16 августа 2024, 11:00
Написал вам два письма на почту с заголовком "Письмо с Форума по VBA, Excel и Word". Написал именно на почту, а не на форум.

Спойлер
For ROW2 = 2 To targetRow - 1

    If Len(ActiveDocument.Tables(2).Cell(ROW2, 4).Range.Text) = 2 Then
        GoTo SkipRow
    End If
   
    cellV1 = ActiveDocument.Tables(2).Cell(ROW2, 5).Range.Text  'все значения пятого стобца
    cellV1 = Replace(cellV1, Chr(7), "")

   
    If cellV1 <> "" Then
        numberV1 = CDbl(cellV1)
    Else: GoTo SkipRow
    End If

   
    cellV2 = ActiveDocument.Tables(2).Cell(ROW2, 4).Range.Text 'все значения 4 стобца
    cellV2 = Replace(cellV2, Chr(7), "")

   
    If cellV2 <> "" Then
   
        numberV2 = CInt(cellV2)
        V = numberV1 * numberV2
        formattedV1 = Format(V, "###,##0.00")
        ActiveDocument.Tables(2).Cell(ROW2, 6).Range.Text = formattedV1
   
    Else: GoTo SkipRow
     
    End If

SkipRow:
Next ROW2
[свернуть]
Название: Пропуск пустой ячейки в таблице
Отправлено: Посетитель 16.08.2024 от 16 августа 2024, 11:06
Большое спасибо за помощь, все заработало, я бы не понял как это надо исправить