Excel 为什么VBA循环查找空单元格删除标题行值?

Excel 为什么VBA循环查找空单元格删除标题行值?,excel,vba,Excel,Vba,我有一个工作簿,每个分支机构都有自己的选项卡。每个选项卡都有用于面试的可用日期的行标题,以及用于可用时间的列标题。详情如下: 从那里,我使用一个用户表单从下拉列表中收集分支机构名称(通过循环表格名称填充)、可用日期(获取已标识表格上的日期),然后是给定日期的空白时间 出于某种原因,每次选择日期时,都会将日期单元格设置为“”或空白。谁能验证我的语法是否正确?我不知道它可能在哪里设置为空白。。。谢谢 Option Explicit Public Sub UserForm_Initialize()D

我有一个工作簿,每个分支机构都有自己的选项卡。每个选项卡都有用于面试的可用日期的行标题,以及用于可用时间的列标题。详情如下:

从那里,我使用一个用户表单从下拉列表中收集分支机构名称(通过循环表格名称填充)、可用日期(获取已标识表格上的日期),然后是给定日期的空白时间

出于某种原因,每次选择日期时,都会将日期单元格设置为“”或空白。谁能验证我的语法是否正确?我不知道它可能在哪里设置为空白。。。谢谢

Option Explicit
Public Sub UserForm_Initialize()Dim sht As Worksheet
    'clear form
    BranchBox.Value = ""
    DateBox.Value = ""
    TimeBox.Value = ""

    'populate sheet names from each branch
    For Each sht In ActiveWorkbook.Sheets
      Me.BranchBox.AddItem sht.Name
    Next sht
End Sub
Public Sub BranchBox_Change()
    'populate dates
    Me.DateBox.List = Worksheets(BranchBox.Value).Range("A2:A31").Value
End Sub
Public Sub DateBox_Change()
    Dim dateSel As String
    Dim branch As String
    Dim sht As Worksheet
    Dim cel As Range
    Dim matchingHeader As Range

    branch = BranchBox.Value
    Set sht = ActiveWorkbook.Worksheets(branch)
    dateSel = DateBox.Value

    'Get Row to scan
    Dim i As Long, rowOff As Long
    For i = 2 To sht.Rows.Count
        Set cel = sht.Cells(i, 1)
        If cel.Value = dateSel Then
            rowOff = i
            Exit For
        End If
    Next i

    'Scan selected row for blank cells
    Dim cnt As Integer
    For i = 2 To sht.Columns.Count
        cel = sht.Cells(rowOff, i)
        If CStr(cel.Value) = "" Then
            Set matchingHeader = sht.Cells(1, i)
            TimeBox.AddItem matchingHeader.Value
        End If
    Next i

    Me.TimeBox.AddItem ("No Appointments Available")
End Sub
你的线路

cel = sht.Cells(rowOff, i)
含蓄地

cel.Value = sht.Cells(rowOff, i).Value
我相信你是有意的

Set cel = sht.Cells(rowOff, i)

这就解决了!谢谢!