2013-10-28 113 views
0

任何人都可以在此代码块中看到问题。我在2010年没有问题,但在2013年运行VBA时似乎遇到了很多问题。VBA Excel 2013表单在从组合框中选择时关闭

我有一个控件窗体,它是从一个excel表单中激活的,它有几个选项,然后打开这个表单(窗体这些选项)。窗体打开,但是当第一个组合框选择被激活时,窗体关闭并基本崩溃。

Public Sub cmbSelectAccount_DropButtonClick() 
    Application.ScreenUpdating = False 

    Workbooks.Open Filename:="C:\Users\xxxxxx\Desktop\New folder\accounts.xlsx" 

    Sheets("Accounts").Activate 
    ActiveSheet.Range("a2:a199").Select 

    Me.cmbSelectAccount.List = Worksheets("Accounts").Range("a2:a199").Value 
    myAccount = Me.cmbSelectAccount.Value 

    Workbooks("Accounts").Close 
End Sub 

如果我单步执行代码,它可以完美地工作。任何帮助是极大的赞赏。

+0

出于好奇,为什么你激活,然后选择范围,但从来没有使用选择?看起来好像你可以删除这两行并加快你的代码速度。 –

+0

我应该解释一下,代码似乎起作用并且“已经工作”了。这就是现在如果我点击原始工作表(Excel中的按钮),它会打开控制器表单,这会打开另一个表单。带有组合框的表单在通过VBA运行时工作,但在通过表单使用时激活按钮单击时会关闭 - 如果这是有意义的。 – user2796515

+0

如果您不介意,您可以通过www.wikisend.com上传您的工作簿。让我在Excel 2013中测试它。 –

回答

0

试试这个(UNTESTED

Public Sub cmbSelectAccount_DropButtonClick() 
    Dim wb As Workbook 

    Application.ScreenUpdating = False 

    Set wb = Workbooks.Open(Filename:="C:\Users\xxxxxx\Desktop\New folder\accounts.xlsx") 

    DoEvents 

    Me.cmbSelectAccount.List = wb.sheets("Accounts").Range("a2:a199").Value 

    DoEvents 

    myAccount = Me.cmbSelectAccount.Value 

    wb.Close (False) 
End Sub 
+0

我会做出这样的改变,很好的建议 – user2796515

+0

不幸的是,当dropButton Click初始化时窗体仍然关闭。 – user2796515

+0

好吧,让我拿到办公室2013 ...给我20分钟。我有一种感觉,我知道为什么会发生这种情况。让我在发布答案之前对其进行测试。 –

0

有在Excel工作表工作表VS一些怪癖,也许在2013年,他们试图解决这些问题。我会尝试改变你的2参考工作表和工作表到所有可能的组合,首先从工作表,工作表,工作表工作表,然后工作表

+0

我会给它一个镜头,让你知道。 – user2796515

+0

很好的建议。尽管这似乎没有改变结果。 – user2796515

相关问题