循环通过VBA中的列以复制整行

时间:2016-07-21 14:51:00

标签: excel vba excel-vba

我试图从第14行开始循环到K列直到结束。我编写了以下代码,但它停止在Range(" K14:")行中工作。我尝试使用Range(" K14"& Rows.Count),但这也没有帮助。

Windows("Price VolatilityDM.xlsm").Activate
Sheets("Volatility Static Data").Activate
Dim x As Single
Dim Cell As Range
For Each Cell In Range("K14:")
    If Cell.Value > 0.25 Then
        Sheets("Volatility Static Data").Range("B:K").Copy
        Windows("Tolerance ReportDM.xslm").Activate
        Sheets("Sheet1").Range("K17:Q17").Paste
    End If
Next Cell

3 个答案:

答案 0 :(得分:2)

md

您只需找到@media(min-width: 992px) { .flex-row { display: flex; align-items: center; } } 对象的结尾,并确保迭代到该对象。往上看;如果有任何问题,请告诉我。

答案 1 :(得分:0)

它停在那里因为你还没有完成整个范围的写作。 Windows("Price VolatilityDM.xlsm").Activate Sheets("Volatility Static Data").Activate Set sh = ThisWorkbook.Workheets("Volatility Static Data") ' add a reference to the sheet for simplicity Dim x As Single Dim Cell As Range Dim lastRow lastRow = sh.Cells(sh.Rows.Count, "K").End(xlUp).Row ' get the last row For Each Cell In Range("K14:K" & lastRow) If Cell.Value > 0.25 Then Sheets("Volatility Static Data").Range("B:K").Copy Windows("Tolerance ReportDM.xslm").Activate Sheets("Sheet1").Range("K17:Q17").Paste End If Next Cell 语法无效。例如,您可以执行:Range

答案 2 :(得分:0)

您可以使用类似的内容从14开始查找列K的结尾:

dim end as range
set cell = range("K14")

'go down one cell at a time until you find that
'the next one is empty. This is the end of the column

do while not cell.offset(1,0).value = "" 

    set cell = cell.offset(1,0)
loop
set end = cell

然后使用for each cell in range("K14:" & end.address)

在你的代码中,它看起来像这样:

Windows("Price VolatilityDM.xlsm").Activate
Sheets("Volatility Static Data").Activate
Dim x As Single
Dim Cell As Range
dim end as range

set cell = range("K14")
'go down one cell at a time until you find that
'the next one is empty. This is the end of the column

do while not cell.offset(1,0).value = ""   
    set cell = cell.offset(1,0)
loop
set end = cell
For Each Cell In Range("K14:" & end.address)
    If Cell.Value > 0.25 Then
        Sheets("Volatility Static Data").Range("B:K").Copy
        Windows("Tolerance ReportDM.xslm").Activate
        Sheets("Sheet1").Range("K17:Q17").Paste
    End If
Next Cell