0

这个让我难住了。我正在用一个范围填充一个列表框,然后将第 4 列格式化为 d/mm/yyyy。如果第 4 列中的所有单元格都有日期,则此方法可以正常工作。由于填充到列表框中的某些单元格实际上是空白的,因此子在遇到这些单元格时会崩溃。如果没有运气,我尝试了各种 if 和 else 语句来跳过 activecell。

感谢任何帮助。亚历克斯五世

 Sub populate_listbox_1()

 Dim I As Long
 Dim I2 As Long
 Dim list_count As Long

Dim MyData As Range
    Dim r As Long
    With edit_report_input.compliments_listbox
        .ColumnCount = 17
        .ColumnWidths = "70;300;75;90;80;80;100;0;0;0;0;0;0;0;0;20;0"
        .RowSource = ""
        Set MyData = ActiveSheet.Range("A4:Q498")   'Adjust the range accordingly
        .List = MyData.Cells.Value
        For r = .ListCount - 1 To 0 Step -1
            If .List(r, 1) = "" Then
                .RemoveItem r
            End If
        Next r
    End With


For I = 0 To edit_report_input.compliments_listbox.ListCount - 1

       edit_report_input.compliments_listbox.List(I, 4) = Format(DateValue(edit_report_input.compliments_listbox.List(I, 4)), "d/mm/yyyy")

Next I

date_rec_compliment = Format(date_rec_compliment, "d/mm/yyyy")

End Sub
4

1 回答 1

0

您可以在更改格式之前随时检查。看看下面的片段是否有帮助

For I = 0 To edit_report_input.compliments_listbox.ListCount - 1
   if edit_report_input.compliments_listbox.List(I, 4) <> "" Then
       edit_report_input.compliments_listbox.List(I, 4) = Format(DateValue(edit_report_input.compliments_listbox.List(I, 4)), "d/mm/yyyy")
   End If
Next I
于 2013-09-07T15:34:46.880 回答