让我设置环境。
这是在 Excel 中运行的 VBA 代码。
我有一个包含 msflexgrid 的用户窗体。此 flexgrid 显示客户列表和客户、销售人员、csr、mfg rep 和区域、分配。当您单击列时,假设在“区域”列下,另一个用户窗体打开以显示区域列表。然后单击您选择的区域,用户窗体消失,新区域取代旧区域。
这一切都很好,直到您单击您选择的区域,“区域”用户表单不会消失(它会闪烁)并且新区域不会转移基础用户表单。
我应该提到,当我单步执行代码时,它工作得很好。
我假设它与 flexgrid 有关,因为打开用户窗体的所有其他用户窗体(没有 flexgrids)都可以正常工作。
以下是一些代码示例:
** 来自 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
** 以下 Subs 用于 Territory 用户表单
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 程序员,这让我很难过。
任何帮助将不胜感激。