在if块及其范围中查找满意条件

时间:2017-03-14 19:07:00

标签: vba if-statement for-loop range

我是excel vba的新手。使用具有两个条件的if块来查找空单元格范围。这个if块在for循环中。现在我需要捕获哪个Condition得到满足以及这个if块选择的单元格范围是多少。因为我在内部使用它,因为我需要捕获范围Everytime并使用它来生成for循环中每个元素的图表。下面是使用if块语法。

If worksheetfunction.counta(cells) = 0 
then 
range("a1").select 
else 
lastrow = activesheet.range("A10000").end(xlup).row 
Cells(lastrow+1,1).pastespecial paste:=xlpastevalues, operation:=xlnone, skipblanks:=false, transpose:=false
End if

我已经复制了一组值,并且根据if条件,它将粘贴在A1中,或者在if块中粘贴第二个条件。所以我需要一个变量来存储在此if条件之后选择的范围。

因为我在for循环中有这个if条件,并说我在该循环中有5个值。所以我最终将为#34; lastrow"提供四种不同的价值观。但是如果条件选择了,我需要捕获所有范围。

对此的任何帮助都将受到高度赞赏。在此先感谢!!

1 个答案:

答案 0 :(得分:1)

你可能会这样:

Dim capturedRange As Range ' <--| declare a Range variable to store the captured range

If WorksheetFunction.CountA(Columns(1)) = 0 Then ' <--| if no values in column A
    Set capturedRange = Range("a1")  ' <--| set 'capturedRange' to cell A1
Else ' <--| otherwise
    Set capturedRange = Range("A10000").End(xlUp).Offset(1) ' <--| set 'capturedRange' to column A first empty cell after last not empty one
    capturedRange.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks:=False, Transpose:=False
End If