簡體   English   中英

如果開始和結束行是可變的,是否可以通過宏選擇數據范圍?

[英]Is it possible to select a range of data via a macro if the start and end row is variable?

我需要在宏中添加一段代碼,以復制並粘貼一系列數據。

我遇到的問題是數據可以在任何行上開始和結束。

是否有可能做到這一點?

例如,當前數據在單元格C10中開始,在單元格I20中結束。 但是下個月它可以從C5開始,到I40結束。

列范圍將始終保持相同,即C:I,但行將每次更改。

如何添加代碼在C列中搜索數據的第一個實例並復制隨后的所有數據?

謝謝

這里有一些代碼片段可能會有所幫助

獲取C中的第一個單元格

If Range("C1").Value <> "" Then
    Set firstcell = Range("C1")
Else
    Set firstcell = Range("C1").End(xlDown)
End If

我測試C1,因為如果這是C中唯一具有值的單元格,它將一直走到底。

在那之后,要獲得底部的單元格

Set lastcell = Cells(Rows.Count, "I").End(xlUp)

另一種方法可能是在電子表格中使用命名范圍來定義要復制的范圍。

=OFFSET(C1,MATCH(TRUE,INDEX(NOT(ISBLANK(C:C)),0),0)-1,0,COUNTA(C:C),7)

該公式將選擇從C列中任意位置開始的任意數量的數據行。 它不考慮標題行或任何其他內容。 如果您的數據總是至少從第5行開始,那么您可以調整C1值,並使用C5:C1000而不是C:C 然后,在VBA中,您可以僅使用Range("namedRange") 復制而不需要計算起點和終點。

如果在運行宏之前突出顯示了所需的單元格,則可以使用“選擇”來引用選定的范圍

即,代替

 Range("C10:i20").Clear

你可以寫

Selection.Clear

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM