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
Но это не работает; когда я запускаю его шаг за шагом, ни один случай не происходит.
пробовал переключаться с" истинно "и" ложно " на "истинно" и "ложно", но это ничего не меняло.
Кто-нибудь знает, почему это не работает ? Я ничего не понимаю...
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Еще один метод, используемый для каждого и без выбора случая, оба из которых должны быть быстрее. Хотя я буду полагаться на Чарльза Уильямса, так ли это.
Comments