2016-08-01 41 views
0

我有一個Excel工作簿,其中有兩張表,名爲「Dashboard Supplier View」和「ComputingSolutions」。在儀表板供應商視圖選項卡中,用戶必須記下名稱中的值cell「categoryName」。當用戶在這個命名單元中寫下「Computing Solutions」並運行代碼時,我希望代碼轉到ComputingSolutions表單並將該表中列A中的所有供應商名稱存儲到數組中,以然後打印出原始工作表中的所有供應商名稱儀表板供應商視圖VBA:代碼運行但沒有生成輸出

「n」變量指的是ComputingSolutions表單上的已命名單元格,並且是該表單上的供應商數目(此編號已被寫下,用戶不需要更改)

當我運行代碼時,什麼也沒有顯示出來。在指定位置的儀表板供應商視圖表上沒有打印任何內容。我也沒有得到任何錯誤。我查了所有的名字,一切都拼寫正確。我不確定可能是什麼問題,但我懷疑它與激活工作表有關。

Public Sub DashboardSupplier() 

Dim category As String 
Dim supplierArray() As String 
Dim c As Integer 

Worksheets("Dashboard Supplier View").Activate 

category = Names("categoryName").Value 

'Suppliers for selectec category 

If category = "Computing Solutions" Then 

Worksheets("ComputingSolutions").Activate 

n = Names("supplierAmount").Value 

ReDim supplierArray(1 To n) As String 

    For c = 1 To n 

    supplierArray(c) = Cells(3 + c, 1) 

    Next c 

Worksheets("Dashboard Supplier View").Activate 

    For c = 1 To n 

    Cells(6 + c, 4) = supplierArray(c) 

    Next c 

    End If 

    End Sub 
+0

'n'變量與命名單元格有什麼關係?名爲'n'的單元格是? –

+0

您是否嘗試過調試?在「If category =」計算解決方案「然後」塊中放置一箇中斷(例如) - 您的代碼是否達到該點? –

+0

n通過n =名稱(「supplierAmount」)引用指定的調用supplierAmount。值 –

回答

2

好的,我想我有一個解決方案,因爲它困擾着我。我將你的環境設置爲測試,並發現由於某種原因,Names("categoryName").Value正在返回單元地址,即它返回Names("categoryName").RefersTo。嘗試交換.value零件.RefersToRange.Value,看看你是否有更好的運氣。這是我的工作格式代碼:

Public Sub DashboardSupplier() 
    Dim category As String 
    Dim supplierArray() As String 
    Dim c As Integer 
    Dim n As Long 
    Worksheets("Dashboard Supplier View").Activate 
    category = Range("categoryName").Value 
    'Suppliers for selectec category 
    If category = "Computing Solutions" Then 
     Worksheets("ComputingSolutions").Activate 
     n = CLng(Range("supplierAmount").Text) 
     ReDim supplierArray(1 To n) As String 
     For c = 1 To n 
      supplierArray(c) = Cells(3 + c, 1) 
     Next c 
     Worksheets("Dashboard Supplier View").Activate 
     For c = 1 To n 
      Cells(6 + c, 4) = supplierArray(c) 
     Next c 
    End If 
End Sub 

不幸的是,我沒有解釋這種行爲。

+0

這給了我運行時錯誤1004:應用程序定義或對象定義的錯誤。我複製了你的整個代碼並使用它。我很困惑 –

+0

通過它,並告訴我在哪裏彈出。 –

+0

這裏:n =名稱(「supplierAmount」)。RefersToRange.Value –