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

来源:互联网 发布:大学数据分析培训课程 编辑:程序博客网 时间:2024/06/05 19:37

一、问题描述

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

这里写图片描述

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

这里写图片描述

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

二、解决方法

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

Private Sub Worksheet_SelectionChange(ByVal Target As Range)Dim arr, sDim Rng As RangeDim row_begin As LongDim row_end As Longrow_begin = 13  '下拉备选菜单选择项开始和接受的行数,根据需要自行修改   row_end = 73For i = row_begin To row_end          s = Sheets(1).Range("A" & i)     '选择A列的内容作为下拉备选项,根据需要自行修改              If s <> "" Then arr = arr & "," & sNext i''''''''''''''''''''第一个下拉框'''''''''''''''''''''''''''Set Rng = Range("H13")   '下拉框是放在H13单元,可以根据需要自行修改    With Rng.Validation.Delete.Add Type:=xlValidateList, Formula1:=arrEnd WithSet Rng = Nothing'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''第二个下拉框'''''''''''''''''''''''''''Set Rng = Sheets(2).Range("I13")      '如需需要选择sheet,通过括号中修改     With Rng.Validation.Delete.Add Type:=xlValidateList, Formula1:=arrEnd WithSet Rng = Nothing'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''后面如需增加,自行负责''''''''''End Sub

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

Step1:

这里写图片描述

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

Step2

Step3:
选择环境

这里写图片描述

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

原创粉丝点击