簡體   English   中英

錄制宏時,根據單元格中的文本值選擇范圍

[英]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.

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