2015-08-14 49 views
-2

我试图从“数据”选项卡中仅复制数据(不包括由If语句创建的空白),然后粘贴到“摘要”选项卡上的数据列底部。试图弄清楚如何让VBA识别可用数据的范围会产生麻烦。从动态表中复制和粘贴数据,同时排除公式空白

+0

你有代码当前给你一个错误?有关更多信息,请参阅[如何提问](http://stackoverflow.com/help/on-topic)。 – Chrismas007

+0

哈哈,你可以在30秒内用谷歌搜索找出这个问题。最后使用'lastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count,“A”)。End(xlUp).Row'确保根据需要更改表单和列。 – findwindow

+0

是的,如果我没有通过IF()语句创建空白,那会起作用。因此,count方法实际上并不返回最后一行数据。 – Theo

回答

0

有几种不同的方式来做到这一点,这取决于你需要什么。 Here's one讨论一些用途的SO线程。 Here's another page讨论使用UsedRange.Rows。而且,正如@findwindow所指出的那样,您可以使用.xlEnd

这是VBA的一个非常常见的用法,所以如果你围绕谷歌(或者甚至通过SO看),你会发现一些信息。

编辑:按照您的评论,只需设置一个范围,并遍历范围中的细胞,直到找到一个非数字号码:

Dim rng as Range, cel as Range 
Dim lastRow as Integer 
Set rng = Range("A1:A10000") 
for each cel in rng 
If not isnumeric(cel.value) then 
    'Do whatever code you want, when the cell is NOT numeric, ie 
    lastRow = cel.Row 
End if 
next cel 
+0

我已经尝试过这些方法,但是我的动态数据范围包含来自IF()语句的空白。你提到的方法给最后一行提供公式而不是最后一行实际数据。我正在寻找一种方法来包含一个循环函数来测试每个单元格的IsNumber(),直到它找到假,然后使用该值作为我的范围。 – Theo