[英]Select a range based on text value in a cell when recording a Macro
我有一個csv文件,我記錄了一個宏,用於在需要時操作CSV文件的數據。 宏的一部分將查找包含文本“月份索引”的單元格。 定位此單元格后,將選擇一個范圍(例如A9,B50)。 問題在於,“月索引”單元格可以位於A7,A8,A11等中,因此,如果單元格引用不同,則宏會提取錯誤的數據。 一旦找到“月指數”,我選擇的范圍就是一致的,因此我認為我可以以某種方式使用偏移量指令,但不確定。
當前,我的宏處理以下內容:
Range("A1").Select
Cells.Find(What:="month index", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Range("A9:B9").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Cut
使用Macro Recorder很好地開始執行一項任務,但是它增加了很多效率低下的額外代碼。 了解如何避免選擇/激活 。
您需要抓住“月份索引”出現的行,因為它是動態的並且在移動,所以您不能一直都選擇相同的范圍,它需要根據找到的行移動...嘗試一些方法線。
Dim iRow as Integer, iMax as Integer
iRow = Cells.Find(What:="month index", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Row
iMax = Cells(iRow, "A").End(XlDown).Row
Range("A" & iRow & ":B" & iMax).Cut
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.