2012-11-06 25 views
0

Excel VBA中的用戶表單今天開始觸及64 kB的內存限制。我預計這個接口至少會增長10-15%,現在可以很容易地看到它的增長。聽起來VB6會更好,但是我讀到它也有同樣類型的64 kB內存限制。在VBA中命中內存限制,Visual Studio VB會更好嗎?

由於此項目上的其他工作人員不知道C++或任何其他語言,因此我被困在使用Visual Basic中。除了凝結表單控件之外,還有哪些快速建議?

+1

你指的是什麼限制? –

+0

VB6和VBA非常接近。 – RBarryYoung

+0

問題是太多的控件,而不是亂碼。該表單有多個乘數,有多達10個頁面,其中包含約4頁的乘積,其中包含多個文本框,標籤和組合框。 用戶表單很大。 – user1229293

回答

0

我剛剛寫了下面的簡單的測試......

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    Try 
     While True 
      Dim B As New Button 
      Me.Controls.Add(B) 
      Me.Text = String.Format("Controls: {0}", Me.Controls.Count) 
     End While 
    Catch ex As Exception 
     Me.Text = ex.Message 
    End Try 
End Sub 

它開始有問題〜4000所控制。我懷疑這是由於筆記本電腦上的內存限制造成的。

+0

謝謝,這是令人鼓舞的。我也在做一些測試,它似乎達到了電腦的極限,而不是人爲的極限。感謝您確認此限制。沒有額外的保證,我不想追求這個項目。 – user1229293

+0

不客氣,很高興我能幫上忙。我強烈建議.Net,尤其是如果你來自VB背景 - 你會發現它是一個令人耳目一新的變化。 – Basic

+0

有幾件事,首先是一個錯字:它是4k不是14k。其次,我追蹤了失敗的原因 - 看來,Windows無法分配額外的GDI(圖形)句柄......過時的文章:http://support.microsoft.com/kb/894500以及更新和詳細信息:http://blogs.technet.com/b/markrussinovich/archive/2010/03/31/3322423.aspx - 它看起來像10,000是Vista +操作系統上每個進程的句柄的默認限制 – Basic