Excel 2003:日历对象/ VBA单击合并单元格时不起作用

我有一个小问题让我插入到我的Excel表中的日历对象工作。 我有一个完全相同的日历对象,在另一个表上完全相同(除了列引用)的代码。 唯一的区别是,在工作表A(问题单)中,我select的单元格(我想让日历对象popup)被合并并居中。 这似乎导致了一个问题。 例如,当我将代码中的引用设置为整个列L时,日历对象将适用于该列中尚未合并或居中的所有单元格。 (要清楚的是,单元格只在列中合并,而不是在任何行中)。 有没有人有任何想法我可以解决这个问题? 我必须把那些单元合并起来,不pipe怎么样,我都可以绕过这个单元。 如果有人有任何build议,我真的很感激,这一直是驱使我疯了整天! 先谢谢你。

代码(不是我自己的)在下面;

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 

如果您select一个合并单元格的范围,则Target.Cells.Count总是大于1.即使您不能单独select它们,也会有多个单元格。

如果您只需要允许select单个单元格或单个合并范围,则可以执行以下操作:

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

这将与单个单元格和合并的单元格一起工作。