環境を整えましょう。
これは Excel で実行される VBA コードです。
msflexgrid を含むユーザー フォームがあります。このフレックスグリッドには、顧客のリストと、顧客、営業担当者、CSR、製造担当者、地域、割り当てが表示されます。列をクリックすると、たとえば Territory 列の下で、別のユーザーフォームが開き、Territories のリストが表示されます。次に、選択した地域をクリックすると、ユーザーフォームが消え、新しい地域が古い地域に置き換わります。
選択した領域をクリックするまで、これはすべてうまく機能します。「領域」ユーザーフォームは消えず (ちらつきます)、新しい領域は基になるユーザーフォームを転送しません。
コードをステップ実行すると、うまく機能することを言及する必要があります。
ユーザーフォームを開く他のすべてのユーザーフォーム(フレックスグリッドを持たない)は問題なく機能するため、フレックスグリッドと関係があると思います。
以下は、いくつかのコードサンプルです。
**テリトリーユーザーフォームが閉じられたときにテリトリーユーザーフォームと新しいテリトリーの割り当てを示すflexgridからのイベントをクリックします。
Private Sub FlexGrid_Customers_Click()
With FlexGrid_Customers
Select Case .Col
Case 0
Case 2
Case 4
Case 6
UserForm_Territories.Show
Case Else
End Select
If Len(Trim(Misc1)) > 0 Then
.TextMatrix(.Row, .Col) = Trim(Misc1)
.TextMatrix(.Row, .Col + 1) = Trim(Misc2)
End If
End With
End Sub
** 次のサブはテリトリー ユーザーフォームで使用されます
Private Sub UserForm_Activate()
Misc1 = ""
Misc2 = ""
ListBox_Territory.Clear
Module_Get.Territories
End Sub
Private Sub UserForm_Terminate()
Set UserForm_Territories = Nothing
End Sub
Private Sub ListBox_Territory_Click()
With ListBox_Territory
Misc1 = Trim(.List(.ListIndex, 0))
Misc2 = Trim(.List(.ListIndex, 1))
End With
Hide
UserForm_Terminate
End Sub
私はこれが長々とした説明であることを知っていますが、私はかなりまともな VBA プログラマーであり、これには困惑しています。
どんな助けでも大歓迎です。