2017-05-22 5 views
0

配列の書式設定の時間と日付が不可能であると仮定しますか?はいの場合、ListBoxの列の書式をどのように変更しますか?これは私が協力している部分です。下部に配列内の日付と時刻の書式設定、またはリストボックスへの配列出力の書式設定

Private Sub TextBox_Search_Change() 
Select Case True 
Case OptionButton_User_Name.Value 
    temp = UCase(Me.TextBox_Search.Value) 
    Dim a() 
    Dim rngValues As Variant 
    With Sheets("ToolData") 
     rngValues = .Range("B2", .Range("B" & .Rows.Count).End(xlUp)).Resize(, 11).Value 
    End With 
    For i = 1 To UBound(rngValues, 1) 
     'Check columns B & F for matching values 
     If UCase(rngValues(i, 1)) Like "*" & temp & "*" Then 
         '(i, Colunm being searched) 
      'Store columns B, F & G for displaying in the ListBox 
      n = n + 1 
      ReDim Preserve a(1 To 8, 1 To n) 
         'ListBox (Colunms 1-...) 
      a(1, n) = rngValues(i, 1) 
      a(2, n) = rngValues(i, 2) 
      a(3, n) = rngValues(i, 5) 
      a(4, n) = rngValues(i, 6) 
      a(5, n) = rngValues(i, 7) 
      a(6, n) = rngValues(i, 8) 
      a(7, n) = rngValues(i, 9) 
      a(8, n) = rngValues(i, 10) 
     'ListBox = rngValues(B,+Colunms on sheet) 
     End If 
    Next 
    'If anything found, replace the ListBox contents. Otherwise leave it as it was. 
    If n > 0 Then 
     Me.ListBox_History.Column = a 
     Me.ListBox_History.Column(3, Me.ListBox_History.ListCount - 1) = Format("hh:mm") 
    End If 

Case Else 

I試験Me.ListBox_History.Column(3, Me.ListBox_History.ListCount - 1) = Format("hh:mm")このビットを追加しかし、それは、フォーマットし、代わりにリストボックスの行1にhh:mmを表示しません。

+0

それは 'フォーマット(Me.ListBox_History.Column(3、Me.ListBox_History.ListCountなければなりません - 1)、 "hh:mm") 'である。それがうまくいくかどうかわからない。 – UGP

+0

うん、私はそれを考え出しただけで、うまくいきます。今では、特定の行ではなく範囲にする方法を見つけようとしています。 – Quint

答えて

1

数値でない場合は、値を配列に書式設定する必要があります。 試してみてください。これはあなたがそのような列の谷cylce可能性が機能していない場合は

a(1, n) = Format(rngValues(i, 1), "hh:mm") 

With ListBox1 
For i = 0 To .ListCount - 1 
    .List(i, 0) = (Format(.List(i, 0), "hh:mm")) 
Next i 
End With 
+0

私はいくつかの配列のformateを使いこなしてみました。うまく動作しませんでした。ループはトリックでした。ご協力いただきありがとうございます。 – Quint