2

より優れたレベルの Excel 機能を持つ誰かが、以下のコードで私を助けてくれませんか? これを Worksheet_Activate イベントで設定しました。以下に示すように、ActiveX リストボックスをデフォルト値に設定するコードがあります。何らかの理由で、リストボックスはデフォルト値を強調表示された項目として表示していません。他のすべてのロジックは正常に機能しているように見えますが、以下のコードが最初のリストボックスの愚かな最初の項目を強調表示しないことに夢中になっています。私は何を間違っていますか?

With CTOverview.ListBox1
    .IntegralHeight = True
    .Height = 114.75
    .Width = 125.25
    .IntegralHeight = False
    .ListIndex = 0
    .Selected(0) = True
    .Value = "Entire Division"
End With

CTData.Range("Overview_RegionSelected").Value = CTOverview.ListBox1.Value

With CTOverview.ListBox2
    .IntegralHeight = True
    .Height = 114.75
    .Width = 150
    .IntegralHeight = False
    .ListIndex = -1
End With

助けてくれてありがとう。

4

5 に答える 5

0

知っている。過去にこの奇妙な動作を見たことがありますが、まったく説明がありません。うまくいくこともあれば、うまくいかないこともあります。これを試して。これは機能します。

With CTOverview.ListBox1
    If .ListCount > 1 Then .Selected(1) = True
    .IntegralHeight = True
    .Height = 114.75
    .Width = 125.25
    .IntegralHeight = False
    .ListIndex = 0
    .Selected(0) = True
    .Value = "Entire Division"
End With

ファローアップ

これは、以前に提供したコードよりも優れたコードです。上記のコードは、複数のが必要であるという事実に限定されていましたListcount。以下は1Listcountでも機能します。

Dim rng As Range, aCell As Range

With CTOverview.ListBox1
    .IntegralHeight = True
    .Height = 114.75
    .Width = 125.25
    .IntegralHeight = False
    .ListIndex = 0
    .Selected(0) = True
    .Value = "Entire Division"

    Set rng = Range(.ListFillRange)
    For Each aCell In rng
        aCell.Formula = aCell.Formula
    Next
End With
于 2013-05-07T18:30:26.667 に答える