繁体   English   中英

VBA:代码运行,但不生成任何输出

[英]VBA: code runs but no output is generated

我有一个具有两张工作表的excel工作簿,分别为“仪表板供应商视图”和“ ComputingSolutions”。在仪表板供应商视图选项卡中,用户必须在命名单元格“ categoryName”中写下一个值。当用户写下“ Computing”时解决方案”,并运行代码,我希望代码转到ComputingSolutions工作表并将该表中A列中的所有供应商名称存储到一个数组中,然后在原始工作表中打印出所有供应商名称。 。

“ 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

好的,我想我有解决办法,因为这困扰着我。 我将您的环境设置为测试,发现由于某种原因, Names("categoryName").Value返回单元格地址,即它返回Names("categoryName").RefersTo 尝试将.value部分.RefersToRange.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

不幸的是,我对此行为没有任何解释。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM