Очень зеленый пользователь VBA, все ниже 2-й строки работает, но как мне заставить работать выше? - PullRequest
0 голосов
/ 28 марта 2019

Я сделал тест в Excel для моего двоюродного брата; Прямо сейчас, если вы получите правильный ответ, вам нужно нажать кнопку для следующего вопроса, но я бы хотел, чтобы макрос показывал «правильно» в течение 2 секунд, а затем перешел к следующему вопросу, не нажимая кнопку. Пожалуйста, помогите

Я пробовал ниже, раньше это был обычный макрос нажатия кнопки, но я пытался изменить его, и он не запустится

Sub answer_correct()

If K11.Value == "Correct!" Then

Range("A1") = WorksheetFunction.RandBetween(1, 65)

Range("I11").Cells.ClearContents

ActiveSheet.Range("I11").Select

Range("F18").Value = Range("F18").Value + 1

End If

End Sub

Я получаю синтаксическую ошибку, ожидаю, что счетчик увеличится на 1, и вопрос будет сброшен

Ответы [ 2 ]

2 голосов
/ 28 марта 2019

VBA никогда не использует == для оператора сравнения. Вместо этого используйте =. Кроме того, я предполагаю, что вы хотите сослаться на диапазон K11, а не на некоторую неопределенную переменную. Таким образом, заменить

If K11.Value == "Correct!" Then

от

If Range("K11").Value = "Correct!" Then
0 голосов
/ 28 марта 2019

Несколько советов:

  • Чтобы избежать путаницы, используется оператор With, объявляющий лист, на который вы хотите нацелиться
  • , используйте "."перед "Range", чтобы наложить диапазон в листе с оператором "
  • Избегать ActiveSheet и выбрать
  • Если вы будете ссылаться на диапазон, более одного раза используемый с оператором.

    Sub answer_correct()
    
    With ThisWorkbook.Worksheets("Sheet1")
    
        If .Range("K11").Value = "Correct!" Then
    
            .Range("A1").Value = WorksheetFunction.RandBetween(1, 65)
    
            With .Range("I11")
                .ClearContents
                .Select '<- I keep .Select to show the With Statement for the range.
            End With
    
            .Range("F18").Value = .Range("F18").Value + 1
    
        End If
    
    End With
    
    End Sub
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...