Умножение столбца на основе значения другого столбца - PullRequest
0 голосов
/ 27 ноября 2018

Я пытаюсь умножить столбец значений на 100 на основе другого значения столбца.Я получаю ошибку.

Sub macro1()
Dim f As Range

Set f = Range("B2:B5").Value

For i = 2 To 100000
    With Sheets("Sheet1")
        If .Range("A" & i).Value = "Pavel" Then
            .Range("B" & i).Value = f * 100
Next i
        End If
End Sub

Ответы [ 2 ]

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

Итак ... Всякий раз, когда у вас есть For, вам нужно Next.Для If требуется End If, если только он не находится на одной строке.Для With необходимо End With.

Таким образом, в общем, просто чтобы начать с чего-то, это работает как-то так:

Option Explicit

Sub Macro()
    Dim f As Range
    Dim i As Long

    Set f = Range("B2:B5")

    For i = 2 To 100000
        With Worksheets("Sheet1")
            If .Range("A" & i).Value = "Pavel" Then
                .Range("B" & i).Value = .Range("B" & i) * 100
            End If
        End With
    Next i    
End Sub

Взгляните на Option Explicit вверху кода это действительно важно и поднимает ваш код на один уровень вверх - Явная опция MSDN .

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

Если вы начинаете новую строку после then в вашем операторе IF, тогда вы должны завершить блок с помощью End if (давайте пока проигнорируем символ продолжения строки), иначе синтаксис недопустим.

Так что либо:

If 1 > 0 then
     Msgbox("True!")
End if

Или:

If 1 > 0 then Msgbox("True!")

Но не начинайте новую строку после then и не включайте End if.

Кроме того, лучше поставить Option Explicit перед вашим кодом, а переменная f кажется неиспользованной - но это был не ваш вопрос.

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