2016-10-05 4 views
0

エクセルシートに挿入したカレンダーオブジェクトを取得するのに少し問題があります。私は完全に動作する別のシート上に同じ(列参照を除く)コードと同じカレンダーオブジェクトを持っています。唯一の違いは、シートA(問題シート)で、私が選択しているセル(カレンダーオブジェクトをポップアップしたい場所)がマージされ、中央に配置されていることです。これは問題を引き起こすようです。たとえば、コード内の参照を列L全体に設定すると、カレンダーオブジェクトは、その列内のマージされていない、または中央に置かれているすべてのセルに対して機能します。 (明らかにするには、セルは列にのみマージされ、行にはマージされません)。どのように私はこれを解決することができます誰も考えを持っていますか?私はそれらの細胞を融合させなければならない、とにかく私はそれを得ることができない。もし誰かが私が本当に感謝している提案があれば、これは一日中ナッツを運転しています!前もって感謝します。Excel 2003:結合されたセルをクリックすると、予定表オブジェクト/ VBAが機能しません。

コード(自分自身ではない)は以下のとおりです。あなたがマージされたセルの範囲を選択した場合

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 

答えて

1

は、その後、Target.Cells.Countは、あなたがそれらを個別に選択することができない場合でも、複数のセルがある1より大きい常にあります。

あなたが必要とするだけで、単一細胞または単一マージされた範囲を選択できるようにした場合、その後、あなたができる:

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

これは、単一細胞とし、結合されたセルで動作します。

+0

アクセル、本当に完璧な答えをありがとう。それは100%今働いている、速い応答を感謝する!素晴らしい一日を過ごしてください、今は確かに私の方が良いです。再度、感謝します! – JavaStarta

関連する問題