錄製宏時,絕對Absolute引用和相對Relative引用的區別

2020-12-06 VBA語言專家

今日的內容是第一章「初識VBA代碼及應用VBA代碼」的第五節「錄製宏時,使用絕對(Absolute)引用和相對(Relative)引用的區別」,「VBA之EXCEL應用」從簡單的錄製宏實現一直講到窗體的搭建,大家可以非常容易的掌握相關的知識,這套教程面向初學人員,共三冊,十七章,都是我們在利用EXCEL工作過程中需要掌握的知識點,希望大家能掌握利用。

第五節 錄製宏時,使用絕對(Absolute)引用和相對(Relative)引用的區別

大家好,我們繼續VBA的學習,在上一講中,我們講到對於初學VBA人員,可以錄製一段代碼讓一些重複的工作能自動完成。這不失為一種提高效率的方法。但我們在錄製宏的時候,一定要注意區別絕對引用和相對引用。這節我將就這個問題給大家以詳細的講解。

1 絕對引用時代碼的錄製效果

所謂絕對引用,是單元格中的絕對單元格引用(例如 $A$1)總是在指定位置引用單元格。如果公式所在單元格的位置改變,絕對引用保持不變。如果多行或多列地複製公式,絕對引用將不作調整。默認情況下,新公式使用相對引用,需要將它們轉換為絕對引用。例如,如果將單元格B2 中的絕對引用複製到單元格B3,則在兩個單元格中一樣,都是 $A$1。

在VBA錄製宏的時候默認採用的是絕對引用的方式。

例如,我們要錄製一段宏,錄製的內容是:在單元格A1中錄入:「VBA世界」,A2中錄入「VBA學習」,A3中錄入「VBA代碼」

我們看一下錄製的效果:

Sub 宏2()

Range("A1").Select

ActiveCell.FormulaR1C1 = "VBA世界"

Range("A2").Select

ActiveCell.FormulaR1C1 = "VBA學習"

Range("A3").Select

ActiveCell.FormulaR1C1 = "VBA代碼"

End Sub

代碼截圖:

2 相對引用時代碼的錄製效果

所謂相對單元格引用(例如 A1)是基於包含公式和單元格引用的單元格的相對位置。如果公式所在單元格的位置改變,引用也隨之改變。如果多行或多列地複製公式,引用會自動調整。默認情況下,新公式使用相對引用。例如,如果將單元格 B2 中的相對引用複製到單元格 B3,將自動從 =A1 調整到 =A2。

在錄製宏的時候,如果需要相對引用,需要按如下的處理方式:

第一:先點擊「使用相對應用」;第二:再點擊「錄製宏」

同樣是實現:錄製的內容是:在單元格A1中錄入:「VBA世界」,A2中錄入「VBA學習」,A3中錄入「VBA代碼」的一段宏,我們看看在選擇相對引用的情況下產生的代碼:

Sub 宏3()

ActiveCell.FormulaR1C1 = "VBA世界"

ActiveCell.Offset(1, 0).Range("A1").Select

ActiveCell.FormulaR1C1 = "VBA學習"

ActiveCell.Offset(1, 0).Range("A1").Select

ActiveCell.FormulaR1C1 = "VBA代碼"

End Sub

代碼截圖:

3 絕對引用錄製宏和相對引用錄製宏的效果區別

兩種方法的代碼在實現效果上有什麼區別呢?我們先在工作表窗口建立兩個運行按鈕分別來實現這兩種引用的效果,如下圖所示的兩個按鈕。

同時我給出了當前活動單元格的位置;

我們先點擊「絕對引用」的運行按鈕,實現的效果如下:

我們仍舊把光標點到「C9」單元格的位置,點擊「相對引用」的運行按鈕,實現的效果如下:

此時我們發現,我們填入的三組字符出現在了C9,C10,C11 三個單元格內。也就是說,在相對引用條件下錄入的代碼是以相對於當前活動單元格的錄入效果。

今日內容回向:

1什麼是絕對引用,什麼是相對引用

2絕對引用和相對引用條件下錄製的宏代碼有何不同?

3) 絕對引用和相對引用條件下錄製的宏代碼在實現效果上有何不同?

本講內容參考程序文件:工作簿01.xlsm

分享成果,隨喜正能量

VBA的應用範圍及學習方法:

VBA是利用Office實現個人小型辦公自動化的有效手段(工具)。這是我對VBA的應用界定。在取代OFFICE新的辦公軟體沒有到來之前,誰能在數據處理方面做到極致,誰就是王者。其中登峰至極的技能非VBA莫屬!

我記得20年前自己初學VBA時,那時的資料甚少,只能看源碼自己琢磨,真的很難。20年過去了,為了不讓學習VBA的朋友重複我之前的經歷,我根據自己多年VBA實際利用經驗,推出了七部VBA專門教程。

第一套:VBA代碼解決方案 是VBA中各個知識點的講解,教程共147講,覆蓋絕大多數的VBA知識點,提供的程序文件更是一座不可多得的代碼寶庫,是初學及中級人員必備教程;目前這套教程提供的版本是修訂第二版,程序文件通過32位和64位兩種OFFICE系統測試。

第二套:VBA資料庫解決方案 資料庫是數據處理的專業利器,教程中詳細介紹了利用ADO連接ACCDB和EXCEL的方法和實例操作,適合中級人員的學習。目前這套教程提供的是修訂第一版教程,程序文件通過32位和64位兩種OFFICE系統測試。

第三套:VBA數組與字典解決方案 數組和字典是VBA的精華,字典是VBA代碼水平提高的有效手段,值得深入的學習,是初級及中級人員代碼精進的手段。目前這套教程提供的版本是修訂第一版,程序文件通過32位和64位兩種OFFICE系統測試。

第四套:VBA代碼解決方案之視頻 是專門面向初學者的視頻講解,可以快速入門,更快的掌握這門技能。這套教程是第一套教程(修訂一版)的視頻講解,視頻更易接受。

第五套:VBA中類的解讀和利用是一部高級教程,講解類的虛無與肉身的度化,類的利用雖然較少,但仔細的學習可以促進自己VBA理論的提高。這套教程的領會主要是讀者的領悟了,領悟一種佛學的哲理。目前這套教程提供的版本是修訂第一版,程序文件通過32位和64位兩種OFFICE系統測試。

第六套教程:VBA信息獲取與處理,是一部高級教程,涉及範圍更廣,實用性更強,面向中高級人員。教程共二十個專題,包括:跨應用程式信息獲得、隨機信息的利用、電子郵件的發送、VBA網際網路數據抓取、VBA延時操作,剪切板應用、Split函數擴展、工作表信息與其他應用交互,FSO對象的利用、工作表及文件夾信息的獲取、圖形信息的獲取以及定製工作表信息函數等等內容。程序文件通過32位和64位兩種OFFICE系統測試。

第七套教程:VBA之EXCEL應用 這是一部初級教程這部教程共三冊,從從創建宏、對話框、工作簿和工作表對象、單元格對象等基礎內容講起,到循環結構、錯誤處理、字符串操作、日期和時間、事件、數組應用,函數過程等方面,一直講解到控制項和窗體對象的應用都是我們提高自己EXCEL水平的必須。

以上各教程學習順序:713265或者743265。其中第四套是對第一套的視頻講解,所以第一和第四隻選其一即可。

相關焦點

  • 每日Excel技巧(熟能生巧):引用中的 「相對引用和絕對引用」
    引用中的特殊概念「相對引用和絕對引用」先糾正一個概念:我們日常都習慣稱為「報表」「表格」「**表」,實際上指的是工作簿。它包含sheet1、sheet2……多個工作表。在這裡,我將用通俗語言來解釋。一、從同一報表內的不同工作表引用、提取數據。
  • WPS Excel入門:不可不學的絕對引用和相對引用
    每一個用Excel/WPS表格的人,都會用到函數公式和自動填充。而要填充函數公式,就必須了解什麼是絕對引用、相對引用和混合引用。不然,一定會遇到許多問題。通常,我們都是輸入第一個公式,然後向下或向右拖動填充公式,或複製公式到其他單元格。
  • excel函數入門必學之相對引用,絕對引用和混合引用。
    小編今天與大家聊聊excel相對引用,絕對引用和混合引用,這是使用excel很常用很重要的部分,三種引用有不同的用法,如果用錯所求單元格會得到錯誤的結果。一、相對引用含義:如果在excel的默認狀態下複製公式,公式中引用的單元格與複製位置的單元格保持一致,進行了相應改變,公式中表現形式如:A1*A2。
  • 快速理解Excel中單元格引用的類別
    今天分享的是Excel中單元格的引用,引用經常的出現在Excel的公式當中,用於傳遞或共享Excel 中單元數據。根據其引用的變化或範圍,我們經常得分為相對引用、絕對引用,內部引用、外部引用等,下面講逐一講述。單元格的引用是指在公式中使用工作表不同部分的數據,或在多個公式中使用同一個單元格中的數據,還可以是不同工作簿、不同工作表中單元格中的數據。
  • Excel怎麼使用單元格引用的方法快速錄入數據
    下面介紹Excel怎麼使用單元格引用的方法快速錄入數據。Excel快速錄入數據時,可以使用單元格引用的方法,包括相對引用、絕對引用和混合引用。相對引用在C2單元格中輸入「=A2」。絕對引用在C2單元格中輸入「=A2」。快捷鍵【F4】鎖定單元格。這時候,無論向下還是向右填充,數據都來自單元格A2。
  • 教你輕鬆理解Excel三種公式引用方式!
    要想正確地使用公式和函數,就必須嚴格遵守它的基本規則。今天我們分享的主題是函數公式中的三種引用:相對引用、絕對引用與混合引用。相對引用、絕對引用與混合引用都屬於單元格的引用。所謂單元格引用,就是引用單元格的地址,把數據與公式聯繫在一起。
  • Chicago essay論文寫作引用格式解析 英文論文引用格式—MLA格式
    相對於APA和MLA來說,相信有很多同學對Chicago格式覺得很陌生。但Chicago格式是英文論文寫作中最常用的頁腳Notes文獻格式。那今天我們就來講一下Chicago essay寫作的引用格式要求。
  • 微信聊天引用別人信息,無需複製或截圖,長按2秒就能引用
    這樣做非常的麻煩,其實在微信中,只要長按消息2秒,就可以直接引用對方的消息,並且進行回復,下面就帶大家演示一下。一、引用文本1.長按對方的文本消息,然後點擊【引用】,在文本框中輸入回復的內容,點擊【發送】。2.回復引用的文本後,在你的消息下方會顯示出來,別人點擊引用消息可以全屏查看。
  • 最全論文引用格式詳解!
    在MLA 參考文獻格式中,主要有兩種類型的文獻,Print (書籍和期刊)和Web (網頁引用內容),這些都必須要在文末的Works Cited中標註出來。另外,每條引用條目還需要次行縮進。書籍引用Last Name, First Name.
  • 論文引用部分怎麼才不算抄襲?
    在寫畢業論文的過程中,我們都會參考借鑑很多的文獻資料,對於比較適合自己論文選題觀點的內容通常會引用到自己的論文中,但是畢業論文是要經過論文查重的,引用他人內容算不算抄襲?下面和小編一起來看看,論文引用部分怎麼才不算抄襲?
  • VBA基礎技能提升,如何快速引用函數公式
    在日常工作中,Excel裡面很多函數我們都用過,比如求和函數sum和sumif,計數函數count和countif。同樣在VBA裡面也有一些函數,我們稱之為VBA函數,我們經常在工作表裡面使用的函數稱之為工作表函數。
  • NHK:71個領域中國科學論文被引用次數世界第一
    在世界各國151個領域內科學論文引用次數排名中,美國排名第一的有80個領域,中國排名第一的有71個領域,日本沒有一個領域進入世界排名第一,其排在前五名的領域也大幅減少,對此日本國內敲響警鐘。據日本廣播協會(NHK)5月12日報導,日本科學技術振興機構將151個領域內的世界各國科學論文引用次數進行對比發現,在很多領域內中國和美國獨佔鰲頭,科學論文引用次數都佔第一,而日本卻沒有在一個領域排名第一。日本科學技術振興機構因此對日本國內敲響警鐘,稱日本研究能力相對下降。
  • 怎麼引用會被知乎查重算為抄襲?
    本文由 查重降重中心 sp8080.com 整理分享寫論文時,我們肯定會引用文獻,以提高文章的理論性和說服力。因此,當我們使用中國知網檢查重複項時,我們會產生疑問。重複率可以從引用的文獻中刪除嗎?然後讓我們一起討論。中國知網是大學和雜誌指定的用於檢查重複論文的系統平臺。同時,CNKI擁有豐富的資源和廣泛的資源。通常,當我們在大學或雜誌上對中國知網進行重複檢查時,與其他文本相比,引文部分屬於他人文章的內容,因此我們需要考慮如何消除被引用論文的重複率。
  • 轉發、引用和彙編機密文件 以確保「機密」關係
    轉發、引用、彙編涉密文件把好「定密」關依照保密法律、法規的規定,需要確定上級機關確定的國家秘密的保密事項的,應當根據國家秘密的保密等級確定。屬於國家秘密的內容的摘錄、引用和彙編,應當按照有關規定報批,不得擅自改變原內容的保密等級、保密期限和保密範圍。
  • excel中的經典查找引用函數之lookup函數的使用
    excel表格的眾多函數中,我們常用的查找引用函數大致有3個,分別是有縱向查找功能的vlookup函數、有橫向查找功能的hlookup函數和可以任意多條件查找引用的lookup函數。下面我們來介紹lookup函數的用法。
  • 你在視頻裡引用的素材,可能侵權了!
    但節目在YouTube上相對嚴格得多,主要是音樂版權,王錚表示,經常會被YouTube做消音處理或下架。遇到這種情況,團隊會選擇重新配樂。「網絡創作引用素材是一定會有的,我覺得主要看是否有商業用途。)和音訊ID(AudioID)監測兩種功能,分別具有比對視訊和音訊是否侵權的功能,視訊功能採用熱圖(Heat map)的方式比對視頻。
  • Java是按引用傳遞還是按值傳遞
    原因是Java對象變量只是指向內存堆中實際對象的引用。因此,即使Java通過值將參數傳遞給方法,但如果變量指向對象引用,則實際對象也將被更改。 javaInteger,Double,Float,Long,Boolean,BigDecimal,和當然的非常公知的String類。
  • 如何正確適用和援引多項法律?如何規範引用法條條款?
    【問題】隨著藥品監管立法的修訂完善,如何在法律適用中正確適用和援引多項法律、如何引用新法和舊法?如何規範引用法條條款?【解析】一、多項依據的引用(一)引用的完整性藥品監管執法文書應依法引用相關法律、法規、規章作為依據。引用時應準確完整寫明法律、法規、規章的名稱、條款序號,需要引用具體條文的,應當整條引用。
  • 如何在Excel中錄製宏以恢復生成的成績條
    我們可以通過錄製宏來達到一鍵生成成績條的效果,如圖。同樣,也可以通過錄製宏來恢復到原始數據的成績表樣式。 在已經生成成績條的數據表格中先選中第三行,點擊「開發工具」選項卡下的「錄製宏」,然後點擊「確定」即可開始錄製宏。
  • 什麼是絕對標高?相對標高?兩者有何區別?
    經常在施工現場聽到標高、絕對標高、相對標高這些建築物某點高度的表達方式,它們究竟有什麼關係呢?大家都知道,建築物的某一部位與事先確定的水平基準點的高差,稱為該部位的標高。那麼今天就重點給大家講解一下什麼是絕對標高?相對標高?兩者有何區別?