1

Извините, если это уже было опубликовано, но я только сегодня начал играть с макросами Excel и мне нужна рука. У меня есть столбец данных со значениями, и я хотел бы, чтобы при выполнении условий макрос возвращал 1 или 0, если это не так.

Я пробовал это, но я получаю некоторую ошибку.

Private Sub CommandButton1_Click()
    Dim score As Integer, result As String

    score = Range("E2:E841").Value
    If score >= 20 Then
        result = "1"
    Else
        result = "0"
    End If

    Range("F2:F841").Value = result
End Sub

Кстати, возможно ли установить столбец как условие? подобно

  • Условие 1: столбец A должен быть выше 20
  • Условие 2: столбец B должен сказать да
Column A      Column B        Result
   1             No             0
  20             Yes            1 
  30             No             1

1 ответ1

0

Давайте проанализируем код очень быстро -

Dim score As Integer
score = Range("E2:E841").Value

Несоответствие типов? Или что-то другое? Вы не можете установить одно целое число на значение диапазона ячеек. Вам понадобится петля -

Private Sub CommandButton1_Click()
    Dim score As Range, result As String

    set score = Range("E2:E841")
    For each c in score
     If c >= 20 Then
        result = "1"
     Else
        result = "0"
     End If

     c.offset(,1) = result
    Next
End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .