[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ComboBoxのリストの表示形式』(くろ)
いつもお世話になってます。
G列の日付をComboBoxに重複と空白以外を表示してます。
"m月d日"で表示したいのですが、▼をクリックしたとき 2行目のデータだけ【2016/04/01】と表示されます。
どこを直したらいいのでしょうか?
ご教授おねがいします。
|[A] |[B] |[C] |[D] |[E] |[F] |[G] [1]| 番号| 工 事 名| 受注者| 担当者| CODE| 指 示 内 容| 指示日 [2]| 1| | | | | |4月1日 [3]| 2| | | | | |5月1日 [4]| 3| | | | | |5月1日 [5]| 4| | | | | |5月1日
※B列〜F列は個人情報の為、空白にしてあります。
Private Sub UserForm_initialize()
Dim i As Integer
ComboBox4.Clear
With ComboBox4 .AddItem Cells(2, 7) For i = 2 To Range("B1").End(xlDown).Row n = Application.WorksheetFunction.CountIf(Range(Cells(2, 7), Cells _ (i - 1, 7)), Cells(i, 7)) If n = 0 Then If Cells(i, 7).Value <> "" Then .AddItem Format(Cells(i, 7), "m月d日") End If End If Next i End With
End Sub
< 使用 Excel:Excel2010、使用 OS:Windows7 >
各行ループして編集して AddItem する前に、なぜか
G2 の値をそのまま AddItem してますね? ですから、ループ内では、編集したものをコンボボックスの2行目からAddItem するロジックになっていますよ。
(β) 2016/05/25(水) 13:52
.AddItem Format(Cells(2, 7), "m月d日") For i = 2 To Range("B1").End(xlDown).Row
(mm) 2016/05/25(水) 13:58
処理例です。
Private Sub UserForm_initialize() Dim c As Range
ComboBox4.Clear
With ComboBox4 For Each c In Range("B2", Range("B" & Rows.Count).End(xlUp)).Offset(, 5) If Not IsEmpty(c.Value) Then If WorksheetFunction.CountIf(Range("B2", c), c) = 1 Then .AddItem Format(c.Value, "m月d日") End If End If Next End With
End Sub
(β) 2016/05/25(水) 14:00
2016/05/25(水) 14:00
参考にさせて頂きます。
いつも的外れな質問ですいません。ありがとうございました。
(くろ) 2016/05/25(水) 14:10
そういうことなんですね。
ありがとうございます。解決しました。
(くろ) 2016/05/25(水) 14:11
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.