gpt4 book ai didi

excel - VBA excel Target.Address =单元格范围

转载 作者:行者123 更新时间:2023-12-04 20:36:12 28 4
gpt4 key购买 nike

我有做两件事的代码:首先,它将位于工作表 2 中的数据验证下拉列表中的项目排序为“,”到工作表 1 中所需的单元格范围。此外,如果用户选择相同的项目,它会删除它来自选定的单元格。

代码的另一个选项是当用户选择下拉列表的单元格时(位于 D2:F325 它应该 放大 100% 以查看列表中的项目(因为它的字体太小看)

在下面的代码中几乎可以完美运行。因为,它仅在我从所需范围中选择一个单元格时才会缩放:

Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then GoTo exitHandler

If Target.Address = Range("XYZ").Address Then
ActiveWindow.Zoom = 100
[A5000] = "zoomed"
ElseIf [A5000] = "zoomed" Then
'Otherwise set the zoom to original
ActiveWindow.Zoom = 70
[A5000].ClearContents
End If

exitHandler:
Application.EnableEvents = True
End Sub


Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngDV As Range
Dim oldVal As String
Dim newVal As String
Dim strVal As String
Dim i As Long
Dim lCount As Long
Dim Ar As Variant
On Error Resume Next
Dim lType As Long
If Target.Count > 1 Then GoTo exitHandler

lType = Target.Validation.Type
If lType = 3 Then
Application.EnableEvents = False
newVal = Target.Value
Application.Undo
oldVal = Target.Value
Target.Value = newVal

If oldVal = "" Then
'do nothing
Else
If newVal = "" Then
'do nothing
Else
On Error Resume Next
Ar = Split(oldVal, ", ")
strVal = ""
For i = LBound(Ar) To UBound(Ar)
Debug.Print strVal
Debug.Print CStr(Ar(i))
If newVal = CStr(Ar(i)) Then
'do not include this item
strVal = strVal
lCount = 1
Else
strVal = strVal & CStr(Ar(i)) & ", "
End If
Next i
If lCount > 0 Then
Target.Value = Left(strVal, Len(strVal) - 2)
Else
Target.Value = strVal & newVal
End If
End If
End If

End If

exitHandler:
Application.EnableEvents = True
End Sub
XYZ是单元格的名称 D2因为我尝试将此范围命名为使用此功能进行选择,但它不起作用。

最后,如何 Target.Address可以选择整个范围 D2:F325

最佳答案

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then GoTo exitHandler

If Not Application.Intersect(Target, Range("D2:F325")) Is Nothing Then
ActiveWindow.Zoom = 100
[A5000] = "zoomed"
ElseIf [A5000] = "zoomed" Then
'Otherwise set the zoom to original
ActiveWindow.Zoom = 70
[A5000].ClearContents
End If

exitHandler:
Application.EnableEvents = True
End Sub

它工作得很好。

关于excel - VBA excel Target.Address =单元格范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42367584/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com