如果整个列中有一个值(减去标题),提醒用户错误的文件

我有一个macros采取两个电子表格,并执行查找。 我需要能够从combobox(ComboBox1.value)中获取用户所选的值,然后分配一个列引用,然后检查列是否为空,然后再继续。 这是为了防止用户在电子表格中select月份列,并提供已更新月份的更新。 然后我会提醒他们,他们可以select如何进行。

combobox包含了所有12个月的列表。 我需要设置一个值作为他们select的列引用,如果这个列是空白的(从A2开始到列中的最后一个入口,或者如果从第2行开始的任何单元格中有任何值,最有意义的),提醒他们。

这张表有超过20K行。 我不能select一个来引用,因为它可能有空白,所以我为什么要检查整个列中的值。

我为了皮特的爱,在我所有的新手荣耀中,在寻找互联网之后,不能做到这一点……

下面的代码没有给出错误,但它也不能正常工作。 我有一个testing表,其中有4月份的值,并没有提醒,它进入下一个行动。

我想要做的这个代码块看起来像…

Dim UpdateMonthColumn As String If ABCMatrixMonthSelect.ComboBox1.value = "January" Then UpdateMonthColumn = "U" ElseIf ABCMatrixMonthSelect.ComboBox1.value = "February" Then UpdateMonthColumn = "W" ElseIf ABCMatrixMonthSelect.ComboBox1.value = "March" Then UpdateMonthColumn = "Y" ElseIf ABCMatrixMonthSelect.ComboBox1.value = "April" Then UpdateMonthColumn = "C" ElseIf ABCMatrixMonthSelect.ComboBox1.value = "May" Then UpdateMonthColumn = "E" ElseIf ABCMatrixMonthSelect.ComboBox1.value = "June" Then UpdateMonthColumn = "G" ElseIf ABCMatrixMonthSelect.ComboBox1.value = "July" Then UpdateMonthColumn = "I" ElseIf ABCMatrixMonthSelect.ComboBox1.value = "August" Then UpdateMonthColumn = "K" ElseIf ABCMatrixMonthSelect.ComboBox1.value = "September" Then UpdateMonthColumn = "M" ElseIf ABCMatrixMonthSelect.ComboBox1.value = "October" Then UpdateMonthColumn = "O" ElseIf ABCMatrixMonthSelect.ComboBox1.value = "November" Then UpdateMonthColumn = "Q" ElseIf ABCMatrixMonthSelect.ComboBox1.value = "December" Then UpdateMonthColumn = "S" End If If WorksheetFunction.CountA(Columns(UpdateMonthColumn)) = 0 Then 'If WorksheetFunction.CountA(Range("Sheet 1[UpdateMonthColumn]")) <> 0 Then Msgbox12 = Msgbox("The column you will place the ABC Count within for " & ABCMatrixMonthSelect.ComboBox1 & "is not empty." & vbCr & " Do you still wish to proceed with an update for " & ABCMatrixMonthSelect.ComboBox1 & "?" & vbCr & "Select Yes to proceed and update with new values." & vbCr & "Select No to return to drop down list and chose a different month." & vbCr & "Select Cancel to return to ABC Matrix Main Menu.", vbQuestion Or vbYesNoCancel, "ABC Matrix Macro") If Msgbox12 = vbYes Then GoTo SelectFile2: If Msgbox12 = vbNo Then ActiveWorkbook.Close GoTo SelectMonth: If Msgbox12 = vbCancel Then Msgbox "ABC Count update cancelled by user!" & vbCr & vbCr & "Returning to ABC Matrix Macro Main Menu.", vbCritical, "ABC Matrix Macro Alert!" With ABCMatrixMainMenu .StartUpPosition = 0 .Left = Application.Left + (0.5 * Application.Width) - (0.5 * .Width) .Top = Application.Top + (0.5 * Application.Height) - (0.5 * .Height) .Show Exit Sub End With End If Else 

 Dim rng As Range, sht As WorkSheet Set sht = thisworkbook.sheets("Sheet1") 'select case is cleaner than a long If Then block Select Case ABCMatrixMonthSelect.ComboBox1.value Case "January": UpdateMonthColumn = "U" Case "February": UpdateMonthColumn = "W" Case "March": UpdateMonthColumn = "Y" '...etc End Select Set rng = sht.Range(sht.Cells(2,UpdateMonthColumn), _ sht.Cells(sht.rows.count, UpdateMonthColumn)) If WorksheetFunction.CountA(rng) = 0 Then 'OK End If