Я работаю над книгой, которая импортирует данные из Access в Excel, и мне нужно выяснить, как заменить значения в определенных столбцах значением даты по умолчанию, когда ячейка пуста. У меня есть 24 столбца, которые не упорядочены рядом друг с другом, в которых есть значения даты, но есть пробелы. Я пытался использовать код диапазона select
, чтобы выбрать диапазон и заменить значение, но я столкнулся с проблемами с диапазоном, не смежным. Я думал, что мог бы использовать другой столбец, который почти всегда заполняется, чтобы определить конец счетчика диапазона и продолжать делать нулевую замену, с которой я начал, но я не знаю, как это сделать. Есть ли способ сделать это легко? Вот коды, с которыми я сейчас работаю:
Sub replace_blanks()
Dim cellvar As Range
For Each cellvar In Selection.Cells
If cellvar.Value = vbNullString Then
cellvar.Value = "1/1/1900"
End If
Next cellvar
End Sub
и
Sub AfterImport()
Range("B1", Range("B1").End(xlDown)).Select
End Sub
Обновление:
Sub AfterImport()
Dim cellvar As Range
Dim AccessData As Worksheet
Dim lngLastRow As Long
Set AccessData = Worksheets("AccessData")
With AccessData
lngLastRow = .Cells(.Rows.Count, "D").End(xlUp).Row
Range("B1", "B" & lngLastRow).Select
For Each cellvar In Selection.Cells
If cellvar.Value = vbNullString Then
cellvar.Value = "1/1/1900"
End If
Next cellvar
End With
Примечание. Этот последний раздел кода работает, когда активным листом является лист AccessData. Однако, когда я запускаю его на другом листе, я получаю сообщение об ошибке и макрос завершает работу.
Спасибо.