利用VBA代码解决Excel下拉菜单跳过空单元格的问题

一、问题描述

利用Excel制作下拉菜单,当某一列有空白单元格时,如下图所示

利用VBA代码解决Excel下拉菜单跳过空单元格的问题_第1张图片

在下拉菜单中,也会存在空白单元格

利用VBA代码解决Excel下拉菜单跳过空单元格的问题_第2张图片

常规制作下拉菜单的方法没有办法避免该问题,所以需要利用VBA解决这个问题

二、解决方法

解决该问题的VBA代码如下:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim arr, s
Dim Rng As Range
Dim row_begin As Long
Dim row_end As Long

row_begin = 13  '下拉备选菜单选择项开始和接受的行数,根据需要自行修改   
row_end = 73

For i = row_begin To row_end
          s = Sheets(1).Range("A" & i)     '选择A列的内容作为下拉备选项,根据需要自行修改    
          If s <> "" Then arr = arr & "," & s
Next i

''''''''''''''''''''第一个下拉框'''''''''''''''''''''''''''
Set Rng = Range("H13")   '下拉框是放在H13单元,可以根据需要自行修改    
With Rng.Validation
.Delete
.Add Type:=xlValidateList, Formula1:=arr
End With
Set Rng = Nothing
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

''''''''''''''''''''第二个下拉框'''''''''''''''''''''''''''
Set Rng = Sheets(2).Range("I13")      '如需需要选择sheet,通过括号中修改     
With Rng.Validation
.Delete
.Add Type:=xlValidateList, Formula1:=arr
End With
Set Rng = Nothing
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

''''''''''''''''''''''''''后面如需增加,自行负责''''''''''

End Sub

三、VBA代码使用方法快速入门

Step1:

利用VBA代码解决Excel下拉菜单跳过空单元格的问题_第3张图片

Step2:
右击Sheet1,点击“查看代码”

利用VBA代码解决Excel下拉菜单跳过空单元格的问题_第4张图片

Step3:
选择环境

利用VBA代码解决Excel下拉菜单跳过空单元格的问题_第5张图片

Step4
将代码复制粘贴,保存即可

你可能感兴趣的:(学习笔记)