EXCEL/VBA: преобразование логического текста В проверки



Я экспортировал данные из access в excel.

Некоторые столбцы содержат логические значения, и excel отображает их как "true"или " false".

Не очень читабельно, поэтому я хочу изменить ложные значения на пустые, а истинные значения на "x".



Вот код VBA, который я написал:



Sub BoolToCheck()
Dim myRow As Integer
Dim myCol As Integer

For myCol = 7 To 38
For myRow = 2 To 458

Select Case Cells(myRow, myCol)
Case "TRUE"
Cells(myRow, myCol) = "x"
Case "FALSE"
Cells(myRow, myCol) = ""
End Select

DoEvents
Next myRow
Next myCol
End Sub


Но это не работает; когда я запускаю его шаг за шагом, ни один случай не происходит.

пробовал переключаться с" истинно "и" ложно " на "истинно" и "ложно", но это ничего не меняло.

Кто-нибудь знает, почему это не работает ? Я ничего не понимаю...

601   3  

3 ответов:

Использование .Текст опасен тем, что он считывает форматированное значение ячейки, которое может быть###, если пользователь уменьшил ширину столбца.
True и False обрабатываются как логические значения, а не текст / строки, поэтому этот код работает:

Select Case ActiveSheet.Cells(j, k)
    Case True
       ActiveSheet.Cells(j, k) = "x"
    Case False
       ActiveSheet.Cells(j, k) = ""
 End Select
Sub MarkTrue()

    Dim rCell As Range

    For Each rCell In ActiveSheet.Range("G2:AR458").Cells
        If rCell.Value = True Then
            rCell.Value = "X"
        ElseIf rCell.Value = False Then
            rCell.ClearContents
        End If
    Next rCell

End Sub

Еще один метод, используемый для каждого и без выбора случая, оба из которых должны быть быстрее. Хотя я буду полагаться на Чарльза Уильямса, так ли это.

Изменен с

Select Case Cells(myRow, myCol)

К

Select Case Cells(myRow, myCol).text

Работает и сейчас.

Comments

    Ничего не найдено.