2013-10-14 54 views
1

我將以下代碼粘貼到ThisWorkbook對象中。然而,每次打開工作簿時,它什麼也不做,只要我進入VBA並手動單步執行它,它就會工作,並且組合框會被填充?我確定它是一個設置或簡單的東西,而不是任何複雜的代碼,但我爲什麼失敗了,我都沒有想法。Open_Workbook例程可手動但不自動

任何幫助,將不勝感激

Option Explicit 
Public bClear As Boolean 

Private Sub Open_Workbook() 

With Application 
    .Calculation = xlManual 
    .EnableEvents = False 
    .ScreenUpdating = False 
End With 

Dim stSQL As String, rst As ADODB.Recordset, k As Integer, vaData As Variant 
Dim objConn As ADODB.Connection 
Dim ConnectionString As String 
ConnectionString = "Provider=sqloledb.1;data source=SQL-SERVER;Initial catalog=SQL-DB;Integrated Security = SSPI;" 
Set objConn = New ADODB.Connection 

stSQL = "EXEC('SELECT NAME FROM TABLE1')" 

With objConn 
    .CursorLocation = adUseClient 
    .Open ConnectionString 
    Set rst = .Execute(stSQL) 
End With 

With rst 
    Set .ActiveConnection = Nothing 
    k = .Fields.Count 
    vaData = .GetRows 
End With 

Sheets("Menu").CB_Book.List = Application.Transpose(vaData) 

objConn.Close 

Set rst = Nothing 
Set objConn = Nothing 

bClear = True 

With Application 
    .Calculation = xlAutomatic 
    .EnableEvents = True 
    .ScreenUpdating = True 
End With 

End Sub 
+1

宏? – 2013-10-14 15:45:47

+0

我已啓用在我的ActiveX設置中打勾的所有控件,並啓用我的宏設置中的所有宏。我也有信心訪問VBA項目。 – Carlos80

+0

參考資料怎麼樣?我有8個標準的打勾。 – Carlos80

回答

3

嘗試修改此:

Private Sub Open_Workbook() 

要這樣:默認情況下啓用

Private Sub Workbook_Open() 
+0

中調用NewPrivateSub!我們去 – 2013-10-14 18:45:40

+0

謝謝!有時候我討厭VBA! – Carlos80