提示:其他語言是Google翻譯的。 你可以訪問 English 版本。
登入
x
or
x
x
註冊
x

or

如何在Excel中基於單元格值運行宏?

假設,我的工作簿中有多個宏代碼,現在,我想根據單元格值運行這些代碼。 本文將介紹使用Excel時可能在日常工作中遇到的幾種情況。

如果單元格值大於或小於具有VBA代碼的特定值,則運行或觸發宏

如果單元格值等於使用VBA代碼的特定文本,則運行或觸發宏


箭頭藍色右泡 如果單元格值大於或小於具有VBA代碼的特定值,則運行或觸發宏


例如,如果單元格A1中的值介於10和50之間,請運行macro1,如果該值大於50,請運行macro2。 要在Excel中解決這個問題,請使用以下VBA代碼。

1。 右鍵單擊要基於單元格值執行宏的工作表選項卡,然後選擇 查看代碼 從上下文菜單中,並在打開 Microsoft Visual Basic的應用程序 窗口中,將以下代碼複製並粘貼到空白模塊中:

VBA代碼:如果單元格值大於或小於以下值,則運行宏:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If IsNumeric(Target) And Target.Address = "$A$1" Then
        Select Case Target.Value
        Case 10 To 50: Macro1
        Case Is > 50: Macro2
        End Select
    End If
End Sub

doc根據單元格值1運行宏

注意:在上面的代碼中:

A1 是包含要運行宏的特定值的單元格;

案例10到50:Macro1:這意味著如果值在10和50之間,則運行Macro1;

大小寫是> 50:Macro2:這意味著如果該值大於50,則運行Macro2。

請將這些宏名稱和標準更改為您的需要,並且您也可以在添加更多條件後添加 案件 腳本。

2。 然後保存並關閉此代碼窗口,現在,當您輸入的值在單元格A10中的50和1之間時,將觸發Macro1,如果輸入的值大於50,則執行Macro2。


箭頭藍色右泡 如果單元格值等於使用VBA代碼的特定文本,則運行或觸發宏

如果要根據單元格中的特定文本觸發宏,例如,如果輸入文本“刪除”,則運行macro1;如果鍵入文本“插入”,則運行macro2。 下面的代碼可以幫你一個忙。

1。 右鍵單擊要根據單元格值執行宏的表單,然後選擇 查看代碼 從上下文菜單中,並在打開 Microsoft Visual Basic的應用程序 窗口中,將以下代碼複製並粘貼到空白模塊中:

VBA代碼:如果單元格值大於或小於,則運行宏:

Sub worksheet_change(ByVal target As Range)
Set target = Range("A1")
If target.Value = "Delete" Then
 Call Macro1
End If
If target.Value = "Insert" Then
Call Macro2
End If
End Sub 

doc根據單元格值2運行宏

注意:在上面的代碼中,“刪除“和”插入“是您想要基於和運行宏的單元格文本 Macro1 - Macro2 是您想要基於文本執行的宏。 請將它們更改為您的需要。

2。 然後保存此代碼並關閉窗口,現在,當您在單元格A1中輸入文本“刪除”時,將觸發macro1,如果輸入文本“插入”,則將執行macro2。


相關文章:

如何在Excel中的單元格值更改時運行宏?

如何在Excel中打印之前自動運行宏?

如何根據從Excel下拉列表中選擇的值運行宏?

如何通過單擊Excel中的超鏈接來運行宏?

如何從工作簿中選擇工作表時運行宏?



推薦的Excel生產力工具

Kutools for Excel幫助您提前完成工作,並從人群中脫穎而出

  • 超過300強大的高級功能,專為1500工作場景設計,通過70%提高生產力,讓您有更多時間照顧家庭和享受生活。
  • 不再需要記憶公式和VBA代碼,從現在起讓你的大腦休息一下。
  • 成為3分鐘的Excel專家,複雜和重複的操作可以在幾秒鐘內完成,
  • 每天減少成千上萬的鍵盤和鼠標操作,現在告別職業病。
  • 110,000高效人才和300 +世界知名公司的選擇。
  • 60-day full功能免費試用。 60天退款保證。 2多年的免費升級和支持。

將選項卡式瀏覽和編輯帶到Microsoft Office,遠比瀏覽器的選項卡強大

  • Office選項卡專為Word,Excel,PowerPoint和其他Office應用程序設計:Publisher,Access,Visio和Project。
  • 在同一窗口的新選項卡中打開並創建多個文檔,而不是在新窗口中。
  • 通過50%提高您的工作效率,每天為您減少數百次鼠標點擊!
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Mani Chandran · 1 years ago
    I am working with result analysis. In this case, the data in the excel will be like this Name, Sub name , Crade. Now,i want to find the all pass or successful candidate numbers from the result. How can i get it. Because, i am having 6 different subject and their results in single excel sheet. If student failed in one subject he is not be a successful student. How do remove their name in all the subjects.
  • To post as a guest, your comment is unpublished.
    Siva · 1 years ago
    Requirement:
    Based on the selection
    There will be a dropdown list for following three properties of the same dimension as below.
    And there will be three derived cells which will be derived from the cells (G46,G47 and G48)

    Scenario:
    If I select a value from cost center drop down list , cost center derived cell(K46) should be populated with value selected from cost center drop down list(H46) and the other two derived cells (K47 and k48) should become blank.

    Similarly if I select value from Budget manager drop down list, Budget manager derived cell should be populated with value selected from Budget manager drop down list(H47) and the other two derived cells (K45 and k48) should become blank.
  • To post as a guest, your comment is unpublished.
    Richard · 2 years ago
    Hi, how about if you want to run a macro based on two cells? One cell being text based and the other cell having numerical values? Then you would want to call a macro if the two cells show exactly what you want, like "YES" for the first cell and 1 for the second cell, if not a pop box would show saying "Not Found".