/ / Excel 2003: Kalenderobjekt / VBA funktioniert nicht, wenn Sie auf verbundene Zellen klicken - Excel, vba, excel-vba, Zusammenführen, Kalender

Excel 2003: Kalender-Objekt / VBA funktioniert nicht, wenn Sie auf verbundene Zellen klicken - Excel, VBA, Excel-VBA, Zusammenführen, Kalender

Ich habe ein kleines Problem mit dem KalenderIch habe ein identisches Kalenderobjekt mit identischem Code (mit Ausnahme der Spaltenreferenz) auf einem anderen Blatt, das einwandfrei funktioniert. Der einzige Unterschied besteht darin, dass in Blatt A (das Problemblatt) das Die ausgewählten Zellen (in denen das Kalenderobjekt angezeigt werden soll) werden zusammengeführt und zentriert. Dies scheint ein Problem zu verursachen. Wenn ich den Verweis im Code beispielsweise auf die gesamte Spalte L eingestellt habe, funktioniert das Kalenderobjekt für alle Zellen in dieser Spalte, die nicht zusammengefügt oder zentriert wurden. (Um es klar zu sagen, werden die Zellen nur in der Spalte und nicht über Zeilen hinweg zusammengeführt) Hat jemand eine Idee, wie ich das lösen kann? Ich muss diese Zellen zusammenführen, da kann ich sowieso nicht umgehen. Wenn jemand Vorschläge hat, würde ich das wirklich schätzen, das hat mich den ganzen Tag verrückt gemacht! Danke im Voraus.

Code (nicht mein eigener) ist unten;

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
"Change this to your range of dates
If Not Intersect(Target, Range("L:L")) Is Nothing Then
Calendar2.Top = Target.Top + Target.Height
Calendar2.Left = Target.Left + Target.Width / 2 - Calendar2.Width / 2
Calendar2.Visible = True
Calendar2.Value = Now
ElseIf Calendar2.Visible Then Calendar2.Visible = False
End If
End Sub
Private Sub Calendar2_Click()
ActiveCell.Value = (Calendar2.Value)
ActiveCell.NumberFormat = "dd mmm yy"
End Sub

Antworten:

1 für die Antwort № 1

Wenn Sie den Bereich einer verbundenen Zelle auswählen, wird Target.Cells.Count ist immer größer als 1. Es gibt mehr als eine Zelle, auch wenn Sie sie nicht einzeln auswählen können.

Wenn Sie nur einzelne Zellen oder einzelne zusammengeführte Bereiche zulassen müssen, können Sie Folgendes tun:

If Target.Address <> Target.Cells(1, 1).MergeArea.Address Then Exit Sub

Dies funktioniert mit einzelnen Zellen und mit verbundenen Zellen.