在一个表中搜索值的数量,调整另一个表中的行数

时间:2016-03-03 03:39:32

标签: excel vba excel-vba

我试图搜索次数" Commodity"出现在表格列中:证券[战略]。然后,我想要获取该数字并相应地调整另一个工作表上的表(名为:Commodity)。如果在证券[策略]栏中出现6次,则商品表应调整为6行,依此类推任何数字。

我对VBA很新。当我运行以下代码时没有任何反应。

Sub AdjRow()

    Dim Count1 As Integer
    Count1 = Application.WorksheetFunction.CountIf(Range("Securities[Strategy]"), "Commodity")
    Count1 = Count1 + 12

    ActiveSheet.ListObjects("Commodity").Resize Range("$A$12:$J$" & Count1)

End Sub

1 个答案:

答案 0 :(得分:1)

为了帮助您进行调试,您可以使用var deregisterWatchFn = $rootScope.$watch(‘someGloballyAvailableProperty’, function (newVal) { if (newVal) { // we invoke that deregistration function, to disable the watch deregisterWatchFn(); ... } }); 将关键值打印到即时窗口,也可以使用Debug.Print打印到消息框。但在这种情况下,如果您在尝试运行宏时收到任何错误消息,我很好奇。编辑代码并尝试运行代码,当我从MsgBox获得的结果大于1时,它运行正常,但是当它为1或更小时中止错误。如果您尝试调整大小的表没有标题,我认为如果CountIf大于零,宏将运行正常。

以下是我在尝试调试代码时获得的代码,示例数据和输出。我运行了3次代码,并从CountIf - 函数返回值8,1和2。请注意我在第二次运行时没有获得listobject的第三个地址,这是因为代码在尝试将CountIf设置为仅其标题(ListObject)时中止。 / p>

<强>代码

A2:J2

<强> Sheet 1中

enter image description here

<强> Sheet 2中

enter image description here

输出到即时窗口

  

9
  $ A $ 2:$ 10 $   $ A $ 2:$ J $ 9
  $ A $ 2:$ J $ 9
   2
  $ A $ 2:$ 10 $   $ A $ 2:$ J $ 9
   3
  $ A $ 2:$ A $ 11
  $ A $ 2:$ J $ 9
  $ A $ 2:$ J $ 3