ここに私の小さな問題で私を助けてくれることを願っています。データは実際には実現されずにコンボボックスに保存されます
私のファイルは3つのワークシートで構成されています。私は、ファイルを開くと、いくつかの計算が
、私はいくつかの要求を開始し、計算を実装するためのボタンをクリックして作成するワークシートを助け 1.データ 2.レポート 3.。この要求は、最初にワークシート1(データ)からワークシート3(ワークシートを手助けする)にデータをコピーします。それ以降の要求はすべてユーザーフォームで行われ、ワークシート3のデータは要求されたデータに対してフィルタリングされます。ユーザーフォームはワークシート3からそのデータを取得し、スクリプティング辞書を介してコンボボックスに表示されます。
は、ここで問題です:
私のデータは、3枚のスプレッドシートに含まれています。 ワークシート2のボタンを押すと、要求は初めての作業です。もう一度やり直したいのであれば(ボタンをもう一度クリックしてコピー、フィルタ、計算を実装してください)、フィルタが正しく設定されていないので、計算も同じです。 しかし、ワークシート3を開くと(現在のビューはワークシート2ではなく、ワークシート2上にあり、ボタンがある場合)、エディタウィンドウで手動でリクエストと計算を開始すると、フィルタと計算は常に正しくなります。
私は、コンボボックスが辞書を生成してそれぞれのデータを取得してフィルタを適用するときにエラーが発生すると思います。フィルタは、常に最初のリクエストで設定されたものです。それ以降のリクエストでは、フィルタは変更されませんが、それは最初のリクエストのフィルタです。 要求と計算を行った後に何らかの種類のリセットが必要なのでしょうか?
私は辞書をscritping /ユーザーフォーム/コンボボックスのために、次のコードを使用:
Sub UserForm_Initialize()
'Taking the data from the helping working sheet
Dim objDic As Object
Dim lngZ As Long
Dim i As Integer
Set objDic = CreateObject("Scripting.Dictionary")
With Sheets("helpsheet")
For i = 12 To Sheets("helpsheet").Cells(.Rows.Count, 3).End(xlUp).Row
If Sheets("helpsheet").Rows(i).Hidden = False Then
ComboBox2.AddItem .Cells(i, 3)
objDic(.Cells(i, 3).Value) = 0
End If
Next
End With
Me.ComboBox2.List = objDic.keys
With Me.ComboBox2
.AddItem "all areas"
End With
End Sub
私は本当に私が続行できないよう誰かが私を助けることができると思います:(
おかげ
ラファ
'ENDを使用して、非常に落胆です!代わりに私の解決策を試す – user3598756