Excel 如何将Visual Basic Multi-Select应用于列?
我不熟悉Excel代码的编程,但我能够在下拉列表中找到一个应用Multi-Select的代码,无需重复。但是,它只适用于这一个单元格,所以我只需要遍历每个单元格,将该规则应用于每个单独的单元格。如果可能的话,我想将此规则应用于该列Excel 如何将Visual Basic Multi-Select应用于列?,excel,vba,Excel,Vba,我不熟悉Excel代码的编程,但我能够在下拉列表中找到一个应用Multi-Select的代码,无需重复。但是,它只适用于这一个单元格,所以我只需要遍历每个单元格,将该规则应用于每个单独的单元格。如果可能的话,我想将此规则应用于该列 Private Sub Worksheet_Change(ByVal Target As Range) 'Code by Sumit Bansal from https://trumpexcel.com ' To allow multiple sele
Private Sub Worksheet_Change(ByVal Target As Range)
'Code by Sumit Bansal from https://trumpexcel.com
' To allow multiple selections in a Drop Down List in Excel (without repetition)
Dim Oldvalue As String
Dim Newvalue As String
Application.EnableEvents = True
On Error GoTo Exitsub
If Target.Address = "$E$13" Then
If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then
GoTo Exitsub
Else: If Target.Value = "" Then GoTo Exitsub Else
Application.EnableEvents = False
Newvalue = Target.Value
Application.Undo
Oldvalue = Target.Value
If Oldvalue = "" Then
Target.Value = Newvalue
Else
If InStr(1, Oldvalue, Newvalue) = 0 Then
Target.Value = Oldvalue & ", " & Newvalue
Else:
Target.Value = Oldvalue
End If
End If
End If
End If
Application.EnableEvents = True
Exitsub:
Application.EnableEvents = True
End Sub
您要检查的不是
Target.Address
,而是Target.Column
If Target.Column = 5 Then
您可能还需要检查Target
是否只是一列。例如,Range(“E5:G5”)。Column
仍将返回5
您可以通过以下方式执行此操作:
If Target.Columns.Count = 1 Then
或一起:
If Target.Columns.Count = 1 And Target.Column = 5 Then
您要检查的不是
Target.Address
,而是Target.Column
If Target.Column = 5 Then
您可能还需要检查Target
是否只是一列。例如,Range(“E5:G5”)。Column
仍将返回5
您可以通过以下方式执行此操作:
If Target.Columns.Count = 1 Then
或一起:
If Target.Columns.Count = 1 And Target.Column = 5 Then
您的问题是将代码作为文本而不是图像包含。使用backticks`使用markdown您要对照某个范围检查
目标(更改的单元格)。提供了很好的指导来完成它。@erazorv4我已经对它进行了调整。@PeterT我试图将它添加到我的单元格中并调整范围。它表示存在编译错误:检测到不明确的名称:工作表\u更改工作表模块中只能有一个工作表\u更改实例。您的问题是将代码作为文本而不是图像包含。使用backticks`使用markdown您要对照某个范围检查目标(更改的单元格)。提供了很好的指导来完成它。@erazorv4我已经对它进行了调整。@PeterT我试图将它添加到我的单元格中并调整范围。它表示存在编译错误:检测到不明确的名称:工作表\u更改工作表模块中只能有一个工作表\u更改实例。