我的方法我尝试使用名称范围为我的2列。然后转到下一个工作表并创建2列(CountryInput,CitiesInput)。在名为CountryInput的专栏中,我进入数据验证工具以创建第一个下拉列表。CitiesInput列应该依赖于CountryInput是我遇到的问题。我尝试使用indirect=a2函数,但没有任何结果。
我也可以使用vba或宏来做这件事吗?
是的。使用VBA来做这件事是可能的。然而,只有当您打算使用国家和城市作为一个连续的列表时,命名范围才是可能的,即所有按国家和城市顺序排序的行。下面的代码将允许您创建此特性,而不管排序顺序如何,即即使数据没有排序。这是一个基本的代码不写的性能但工作,请编辑相应。希望这能解决你的问题。
Sub SetupCountry() 'run this on workbook open event
Dim rng As Range
Set rng = ActiveSheet.Range("H7") 'choose your cell(s) here
With rng.Validation
FRM = GetUniqueCountries()
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=FRM
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub
Sub SetupCity() 'run this sub on the change event of Country cell
Dim rng As Range
Set rng = ActiveSheet.Range("I7") 'choose your cell(s) here
With rng.Validation
FRM = GetCities()
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=FRM
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub
Function GetUniqueCountries() As String
Dim sOut As String
Dim v, c
Dim rngList As Range
Set rngList = ActiveSheet.Range("D7:D28") 'edit the range where your country list is stored
sOut = ""
For Each c In rngList
If InStr(1, sOut, c.Value & ",") = 0 Then 'check if the value is already in the upload list and add if not there
sOut = c.Value & "," & sOut
End If
Next c
'remove first ,
If sOut <> "" Then
sOut = Left(sOut, Len(sOut) - 1)
End If
GetUniqueCountries = sOut
End Function
Function GetCities() As String
Dim sOut As String
Dim v, c
Dim rngSearch As Range
Set rngSearch = ActiveSheet.Range("D7:D28") 'edit the range where your cities list exists
sOut = ""
For Each c In rngSearch
If c.Value = ActiveSheet.Range("H7").Value Then 'selected country
sOut = sOut & "," & ActiveSheet.Range("E" & c.Row).Value
End If
Next c
'remove first ,
If sOut <> "" Then
sOut = Mid(sOut, 2)
End If
GetCities = sOut
End Function
如果您可以按照国家和城市对数据进行排序,那么命名范围将是一个更优雅的解决方案。当city的datavalidation公式引用命名范围(例如CITIES)时,您需要根据country的值重置CITIES的范围(使用类似的getCities()函数的构造)。
下面显示了一种更改命名范围的范围引用的简单方法。可以根据搜索输出更新公式。
ActiveWorkbook.Names("SOMENAMEDRANGE").RefersTo = "=Sheet1!$D$5:$L$25"
我期待城市列表中的城市名单基于代码的输入。 请求你的协助。
我有剑道网格,我需要在两个单元格中内联编辑两个下拉列表。第二个列表依赖于第一个列表。第二个可以有0个或X个项目。当秒为0时,如何在保存项目时向服务器发送空值? 网格如下所示: 操作编辑器模板: 当我单击“保存”时,我在请求中始终具有操作的默认值。谢谢你的帮助!
我试图在AngularJS中实现依赖级联下拉列表。它很好:如果我选择任何国家(例如:),那么在第二个下拉框中会显示状态(例如:、、)(这很好)。 但是我的要求是:在显示了一个国家的上述相关状态之后,我只需要在第一个下拉框中显示给定状态的相应所选国家(例如,如果我选择了Country1的
本文向大家介绍gradle 列表依赖,包括了gradle 列表依赖的使用技巧和注意事项,需要的朋友参考一下 例子 调用dependencies任务可以使您看到根项目的依赖关系: 结果是依存关系图(考虑了传递依存关系),已按配置细分。要限制显示的配置,您可以传递--configuration选项,然后传递一个选定的配置进行分析: 要显示子项目的依赖关系,请使用<subproject>:depende
我需要两个依赖的下拉列表。在VBA中,我尝试为单个列表创建下拉列表,但我无法使其依赖。下拉列表如下所示 第一个下拉列表的内容 对应的清单2是 对于dd1 对于dd2 就像怀斯。 我已经用完了代码 列表中不能有任何空格/空单元格。 我也试过这个 https://siddharthrot.wordpress.com/2011/07/29/excel-data-validationcreate-dyna
增加下拉列表在到按钮上,确保 data-activates 属性匹配 <ul> 标签的 id,你可以增加分隔线通过 <li class="divider"></li> 标签。 <!-- Dropdown Trigger --> <a class='dropdown-button btn' href='#' data-activates='dropdown1'>单击我</a> <!-- D