我试图搜索次数" 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
答案 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中强>
<强> Sheet 2中强>
输出到即时窗口
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