Изменение значения столбца на основе другого столбца с использованием vba в excel

Я пытаюсь создать кнопку макроса, которая поможет мне обновить значение в столбце AE до «N», если значение в той же строке столбца H равно «REPO».

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

Sub Change_Repo_Risk_to_N()     

    Sheets("expo").Select    
    Dim LastRow As Long    
    Dim i As Long    
    LastRow = Range("H" & Rows.Count).End(xlUp).Row

    For i = 2 To LastRow           
        If Range("H" & i).Value = "REPO" Then    
            Range("AE" & i).Value = "N"    
        End If   
    Next i      

End Sub

Со мной отлично работает. Может быть, просмотр кода построчно (используйте F8) может помочь вам найти проблему? Также старайтесь избегать Select (см.: stackoverflow.com/questions/10714251/…). Возможно, диапазоны, которые вы имеете в виду, на самом деле не находятся внутри Sheets("expo")?

ouroboros1 17.05.2022 15:56
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Четыре эффективных способа центрирования блочных элементов в CSS
Четыре эффективных способа центрирования блочных элементов в CSS
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то...
0
1
22
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вероятно, ошибка из-за одного, если эти 3:

  • Отсутствие Trim()
  • Отсутствие UCase() (Option Compare Text альтернатива этому)
  • Select() работает слишком медленно и неправильно обращается к рабочему листу (постарайся избежать этого)

Попробуй это:

Sub ChangeRepoRiskToN()
 
    With Worksheets("expo")
        Dim lastRow As Long
        Dim i As Long
    
        lastRow = .Range("H" & Rows.Count).End(xlUp).Row
            For i = 2 To lastRow
                If Trim(UCase(.Range("H" & i).Value)) = "REPO" Then
                    .Range("AE" & i).Value = "N"
                End If
            Next i
    End With

End Sub

Спасибо за вашу помощь и совет! Я думаю, что функция Trim была тем, чего мне не хватало! Теперь все работает нормально :)

Kat K 17.05.2022 16:36

Другие вопросы по теме