VBA中引用工作表中的公式和調用工作表函數!

2021-03-02 米宏Office

我的目標:讓中國的大學生走出校門的那一刻就已經具備這些office技能,讓職場人士能高效使用office為其服務。支持我,也為自己加油!

在日常工作中,Excel裡面很多函數我們都用過,比如求和函數Sum,Sumif,計數函數Count,Countif,同樣在VBA裡面也有一些函數,我們稱之為VBA函數,相對於VBA函數,我們經常在工作裡面使用的函數稱之為工作表函數

在寫代碼時,我們可以引用工作表函數,也可以直接使用VBA函數,但如果VBA函數不能實現某個目的而工作表函數卻能輕鬆實現的情況之下,那就要在代碼中引用工作表中的公式了。

下面我們來看下,如何引用工作表中的公式?

以上圖為例,

一、用VBA在F2中計算金額。

在工作表中使用公式,很簡單,直接在F2中輸入:

=B2*C2

在VBA中表達如下:

Sub 普通公式()Range("f2") = "=b2*c2"End Sub

等號後面直接雙引號,雙引號裡公式和工作表裡的公式一致,注意帶等號。

二、如果是要一次性在F2:F8裡輸入公式呢?

這裡要用到循環語句,正好複習前面講過的內容

Sub 普通公式1()Dim x As IntegerFor x = 2 To 8  Cells(x, 6) = "=b" & x & "* c" & xNext xEnd Sub

X是一個變量,代表行號,公式中凡是文本與數字相連要用&符號,且文本必須用括號括起來。

這裡我們用了Cells,那可以用Range嗎?當然可以,只有這樣舉一反三我們才能真正掌握其寫法:

Sub 普通公式2()Dim X As IntegerFor X = 2 To 8  Range("f" & X) = "=b" & X & "* c" & XNext Xend sub

跟上面的代碼很相似,從這個例子中我們觀察到了,比如,我用VBA寫A2單元格,應該是Range("A2"),A2要用雙引號括起來,但如果引用的是A列的任意一個單元格,Ax,x為變量,那麼寫法就是Range("A"&x),而不需要在此基礎上再加雙引號了,同樣,後面跟的公式中含有變量時寫法也是如此。

經過前面幾節的內容,我們也逐步的認識到了VAB中單元格的兩種表示方式:

1、Range("具體的單元地址")

2、Cells(行號,列號)

單元格的表示方法如下:

比如A1單元格,可以寫成,Range("a1"),Cells(1,1),Cells(1,"a"),[a1]

以上是直接引用工作表中的公式,公式中沒有使用函數,如果公式中有函數,又該如何引用呢?

三、如果是要計算A產品的個數呢?

如果是在工作表裡,我們直接

=COUNTIF(A2:A8,"A")

就可以了。

那VBA中會是怎麼樣的呢?

Sub 普通公式3()  Range("D12") = "=COUNTIF(A2:A8,""A"")"End Sub

跟前面所講的寫法的區別在於,凡是原來公式裡有引號的地方,在VBA中要多加一個引號。

前面兩種情況,我們都了解了,一個是公式中沒有函數的情況,一個是公式中有函數的情況。

四、那我們常用的數組公式,那個大括號,我們平常是按Crtl+Shift+Enter後自動加上去的,這種情況在VBA中怎麼解決呢?

比如上例中:求金額之和,用數組公式是:

=SUM(B2:B8*C2:C8)

VBA中的寫法如下:

Sub 數組公式()  Range("e10").FormulaArray = "=SUM(B2:B8*C2:C8)"End Sub

數組公式也是等號後面雙引號裡直接複製公式進去,不同在於,如果是數組公式,Range("e10")後要跟FormulaArray(表示數組公式)

五、以上是直接引用工作表中的函數公式,如果在VBA中要調用工作表的函數直接獲得值,語法如下(以計算A產品出現的次數為例):

Sub 調用公式()Range("D12") = Application.WorksheetFunction.CountIf(Range("A1:A8"), "A")End Sub

Application.WorksheetFunction.後面跟函數,並且函數的參數寫法要按照VBA中的格式寫,輸入WorksheetFunction.後,系統會自動彈出可以調用的工作表函數。

六、如果是使用VBA自己的函數,其語法如下:

假如A1中為-3,想在A2中得到A1的絕對值

Sub VBA函數()Range("A2") = VBA.Abs(Range("A1"))End Sub

VBA.後面直接跟VBA函數就可以。

今天的分享就到這裡,希望對大家有所幫助!

相關焦點

  • Excel多工作表引用,Indirect函數才是NO.1,多表操作這兩組函數公式你應會
    如上圖所示,表格中有1-5月5個月的工資數據,每個工作表裡面的人數是不固定的。我們需要在匯總表中將對應人員5個月數據進行匯總求和。這裡就涉及到對5個工作表的引用。下面我們就來學習Indirect函數3種不同工作表名稱下的引用操作。案例一:Indirect函數對以數字命名的工作表進行多表引用
  • Excel中公式中的相對引用和絕對引用
    您可以使用引用在一個公式中使用工作表不同部分中包含的數據,或者在多個公式中使用同一個單元格的值。還可以引用同一個工作簿中其他工作表上的單元格和其他工作簿中的數據。引用其他工作簿中的單元格被稱為連結或外部引用。
  • 28.VBA編程基礎——引用worksheet工作表
    1索引號和工作簿名稱引用在工作簿workbook的學習中,我們認識到了引用工作簿可以通過引用工作簿的索引號或者引用工作簿的名字來實現。舉一反三,我們在引用工作表的時候一樣可以這麼做。語法如下:(點擊圖片查看大圖)2代碼名稱引用有趣的是,除了上面的引用方式,工作表的引用還有一種特別的方式,叫做代碼名稱引用。代碼名稱是什麼,怎麼知道這個表格的代碼名稱?
  • 跨工作表自動計算當前庫存量.Excel INDIRECT函數跨工作表引用案例詳解.
    每個產品的庫存明細存放在不同的工作表中,出入庫操作起來是方便多了,可盤點庫存剩餘量卻麻煩了,需要一個一個去看,今天小編就為大家分享一個利用INDIRECT函數跨工作表引用實現跨工作表自動計算當前庫存量的小方法。INDIRECT函數課堂 說明返回由文本字符串指定的引用。此函數立即對引用進行計算,並顯示其內容。
  • Excel公式技巧16: 使用VLOOKUP函數在多個工作表中查找相匹配的值(1)
    VLOOKUP函數。但是,如果在多個工作表中查找值並返回第一個相匹配的值時,可以使用VLOOKUP函數嗎?本文將講解這個技術。 最簡單的解決方案是在每個相關的工作表中使用輔助列,即首先將相關的單元格值連接並放置在輔助列中。然而,有時候我們可能不能在工作表中使用輔助列,特別是要求在被查找的表左側插入列時。因此,本文會提供一種不使用輔助列的解決方案。
  • 在Excel中利用查找與引用函數動態調用照片和圖片
  • 公式 | Excel提取文件名稱與工作表名稱
    STEP01單擊【公式】-【名稱管理器】-【新建】,然後輸入名稱的名稱如「提取文件名稱」,在【引用位置】輸入公式:=FILES("E:\excel教程\*.xls*"),然後單擊【確定】。注意:當前的提取工作表的函數如果修改了路徑,公式可自動改變。
  • Excel中多工作表跨表按條件匯總求和
    之前在文章中講過條件求和的常用方法,單個工作表的條件求和,很多同學都已經會藉助Excel自動計算了,但當遇到多表條件匯總的問題,很多人還沒有思路。今天我來結合一個實際案例,介紹1個公式搞定多工作表跨表按條件匯總求和的方法。
  • excel中indirect函數使用方法和應用實例
    內容提要:本文通過實例詳細介紹excel中indirect函數的使用方法和在數據有有效性和三維引用的應用
  • 用VLOOKUP函數從多個工作表查詢數據
    假定三個工作表依次為河北區、北京區和天津區。VLOOKUP函數的用法不再解釋,它由四個參數組成:VLOOKUP(要查找的數據,在哪個區域查找,返回區域第幾列,精確匹配或模糊匹配)這四個參數中,我們可以解決三個,公式是在查詢表的B2單元格中輸入的。
  • Excel常用函數之VLOOKUP函數查找多個工作表的數據
    VLOOKUP函數功能非常強大,使用場景也變化很大,因此準備分為幾篇來介紹:VLOOKUP函數精解(已發,詳情閱讀這裡)VLOOKUP排錯(已發,詳情閱讀這裡)VLOOKUP函數動態返回不同的列(已發,詳情閱讀這裡)VLOOKUP函數使用多個條件(已發,詳情閱讀這裡)VLOOKUP函數返回多個值VLOOKUP
  • 【Excel】VBA常用單詞和語法
    Resize 重新定義區域大小CurrentRegion:相連的Value 值Call呼叫Visible可見性Rows所有的行Columns 所有列Createobject引用動態庫文件函數Join 連接,組合Filter篩選Index 工作表引用函數Function函數Volatile易失性ColorIndex顏色索引Interior底紋
  • Excel公式技巧54: 在多個工作表中查找最大值/最小值
    ,我們馬上就會想到使用MAX/MIN函數。例如,下圖1所示的工作表,使用公式:=MAX(A1:D4)得到最大值18。使用公式:=MIN(A1:D4)得到最小值2。圖1 然而,當遇到要在多個工作表中查找最大值或最小值時,該怎麼做呢?
  • Excel跨工作表動態查詢數據
    今日問題今天分享內容:VLOOKUP結合INDIRECT多工作表動態查詢數據一個工作薄有多個工作表,要動態查詢每個工作表每個品名的銷售金額和每個工作表銷售金額合計,如果在一個表裡就是最簡單常用的VLOOKUP查找就可以,現在要動態查詢每個工作表的數據就得結合INDIRECT函數來動態引用每個工作表,如下動畫
  • Excel2019中設置工作表標籤顏色的方法
    為了更進一步地區分工作簿中的多個工作表,還可以根據實際需要為工作表標籤設置不同的顏色
  • Excel公式技巧55:查找並獲取最大值/最小值所在的工作表
    》中,我們在MAX/MIN函數中使用多工作表引用來獲取最大值/最小值。現在更進一步,我們想要獲取最大值/最小值所在的工作表名稱。 我們仍然使用上篇文章的示例,工作表Sheet1、Sheet2和Sheet3中的數據分別如下圖1至圖3所示。
  • 【 Excel 】如何在不同工作表定義表示不同數據的相同名稱
    → 操作方法定義工作表級名稱步驟1 選取Sheet1工作表,按<Ctrl+F3>組合鍵,彈出「新建名稱」對話框;步驟2 如圖 57‑2所示,在「名稱」編輯框中輸入「稅率」,在「範圍」下拉菜單中選取「Sheet1
  • 一看函數公式就懵逼?教你輕鬆理解Excel三種公式引用方式!
    要想正確地使用公式和函數,就必須嚴格遵守它的基本規則。
  • Excel中,如何跨工作表引用數據?
    你是直接複製黏貼,還是使用vlookup函數,抑或是其他方法呢?下面跟雷哥一起看一個案例。-1- 場景如圖所示,一個工作簿中包含多個sheet表,北京,杭州,南京。且,表中的數據格式,位置等完全一致。只是數據不同。
  • Excel 公式中的標點符號
    在EXCEL 運用中,特別是在公式中,會用到很多標點符號。標點符號在ExceL公式中是語法的一部分。