vb監測Excel兩個單元格變化,達到閾值響鈴

需求

在Excel中實現監控兩個單元格之間的變化范圍,當達到某個設定的值的范圍內時,實現自動響鈴提示。

實現:

  1. 首先設置Excel,開啟宏、打開開發者工具,點擊visual Basic按鈕,然后在左側雙擊需要監測的sheet。
  2. 此時會打開一個代碼編輯窗口,在窗口中粘貼代碼,修改需要監控的單元格,然后保存。
  3. 將響鈴用的wav格式文件放入到D盤,以下以D盤為例,可自定義。
  4. 此時回到Excel頁面然后在對應的單元格編輯數字進行測試。
  5. 以下代碼實現了A1到B10這一組范圍的多個單元格對,當有一個有變化達到條件時即可出發響鈴。
Private Declare PtrSafe Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" _(ByVal pszSound As String, ByVal hmod As Long, ByVal fdwSound As Long) As Long' 常量定義
Private Const SND_ASYNC = &H1        ' 異步播放(后臺播放)
Private Const SND_FILENAME = &H20000 ' 參數是文件名
Private Const SND_NODEFAULT = &H2    ' 找不到文件時不播放默認聲音' 模塊級變量,用于記錄已觸發過的行和對應的值
Private triggeredRows As ObjectPrivate Sub Worksheet_Activate()' 初始化字典,在工作表激活時執行一次If triggeredRows Is Nothing ThenSet triggeredRows = CreateObject("Scripting.Dictionary")End If
End SubPrivate Sub Worksheet_Calculate()Dim i As LongDim threshold As DoubleDim soundFile As StringDim valA As Variant, valB As VariantDim diff As DoubleDim key As StringDim currentHash As String' 設置參數threshold = 2                   ' 閾值soundFile = "D:\xm3555.wav"     ' WAV 文件路徑' 初始化 DictionaryIf triggeredRows Is Nothing Then Set triggeredRows = CreateObject("Scripting.Dictionary")' 遍歷每一行For i = 1 To 10valA = Range("A" & i).ValuevalB = Range("B" & i).Value' 確保都是數字If IsNumeric(valA) And IsNumeric(valB) Thendiff = Abs(valA - valB)' 構造唯一標識符(當前 A 和 B 的值組合)currentHash = valA & "|" & valBkey = "Row" & i' 如果這一行沒有觸發過,或者值發生了變化If Not triggeredRows.Exists(key) Or triggeredRows(key) <> currentHash ThenIf diff < threshold Then' 播放聲音If Dir(soundFile) <> "" ThenPlaySound soundFile, 0, SND_ASYNC Or SND_FILENAME Or SND_NODEFAULTElseMsgBox "警告音文件未找到: " & soundFile, vbExclamationPlaySound vbNullString, 0, SND_ASYNCEnd If' 更新記錄為當前值triggeredRows(key) = currentHashElse' 差值不小于閾值,則清除該行記錄(可選)If triggeredRows.Exists(key) ThentriggeredRows.Remove keyEnd IfEnd IfEnd IfEnd IfNext i
End Sub

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/84211.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/84211.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/84211.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

用 Melos 解決 Flutter Monorepo 的依賴沖突:一個真實案例

在 Flutter 項目開發中&#xff0c;尤其是采用 Monorepo 架構管理多個相互關聯的包時&#xff0c;依賴沖突是一個常見且令人頭疼的問題。不同的包可能依賴同一個庫的不同版本&#xff0c;導致項目無法編譯或運行時出現難以調試的錯誤。 本文將基于一個 真實的 Flutter Monorep…

Spring AI 項目實戰(五):Spring Boot + AI + DeepSeek + Redis 實現聊天應用上下文記憶功能(附完整源碼)

系列文章 序號文章名稱1Spring AI 項目實戰(一):Spring AI 核心模塊入門2Spring AI 項目實戰(二):Spring Boot + AI + DeepSeek 深度實戰(附完整源碼)3Spring AI 項目實戰(三):Spring Boot + AI + DeepSeek 打造智能客服系統(附完整源碼)4Spring AI 項目實戰(四…

Vue 3 Teleport 實戰:優雅實現模態框、通知和全局組件

Vue 3 Teleport&#xff1a;突破 DOM 層級限制的組件渲染利器 在 Vue 應用開發中&#xff0c;組件通常與其模板的 DOM 結構緊密耦合。但當處理模態框&#xff08;Modal&#xff09;、通知&#xff08;Toast&#xff09;或全局 Loading 指示器時&#xff0c;這種耦合會成為障礙…

SVM超詳細原理總結

哈嘍&#xff0c;我是我不是小upper~ 今天想跟大家聊聊支持向量機&#xff08;SVM&#xff09;。很多初學者對這個算法模型特別感興趣&#xff0c;它也是初學者在學習過程中非常喜愛的一種模型&#xff0c;更是機器學習領域中極為重要的算法之一&#xff01; 今天想跟大家深入…

【Oracle】觸發器

個人主頁&#xff1a;Guiat 歸屬專欄&#xff1a;Oracle 文章目錄 1. 觸發器基礎概述1.1 觸發器的概念與特點1.2 觸發器的分類1.3 觸發器的執行順序 2. DML觸發器2.1 基礎DML觸發器2.1.1 INSERT觸發器2.1.2 UPDATE觸發器2.1.3 DELETE觸發器 2.2 高級DML觸發器2.2.1 復合觸發器2…

MTK-Android12-13 Camera2 設置默認視頻畫質功能實現

MTK-Android12-13 Camera2 設置默認視頻畫質功能實現 場景&#xff1a;部分客戶使用自己的mipi相機安裝到我們主板上&#xff0c;最大分辨率為1280720&#xff0c;但是視頻畫質默認的是640480。實際場景中&#xff0c;在默認視頻分辨率情況下拍出來的視頻比較模糊、預覽也不清晰…

QtDBus模塊功能及架構解析

Qt 6.0 中的 QtDBus 模塊是一個用于進程間通信&#xff08;IPC&#xff09;的核心模塊&#xff0c;它基于 D-Bus 協議實現。D-Bus 是一種在 Linux 和其他類 Unix 系統上廣泛使用的消息總線系統&#xff0c;允許應用程序和服務相互通信。 一、QtDBus模塊主要功能&#xff1a; 1…

Spring AI 項目實戰(六):Spring Boot + AI + DeepSeek 打造智能成語接龍游戲(附完整源碼)

系列文章 序號文章名稱1Spring AI 項目實戰(一):Spring AI 核心模塊入門2Spring AI 項目實戰(二):Spring Boot + AI + DeepSeek 深度實戰(附完整源碼)3Spring AI 項目實戰(三):Spring Boot + AI + DeepSeek 打造智能客服系統(附完整源碼)4Spring AI 項目實戰(四…

【HarmonyOS 5】教育開發實踐詳解以及詳細代碼案例

以下是基于 ?HarmonyOS 5? 的教育應用開發實踐詳解及核心代碼案例&#xff0c;結合分布式能力與教育場景需求設計&#xff1a; 一、教育應用核心開發技術 ?ArkTS聲明式UI? 使用 State 管理學習進度狀態&#xff0c;LocalStorageProp 實現跨頁面數據同步&#xff08;如課程…

【鴻蒙在 ETS (Extendable TypeScript) 中創建多級目錄或文件,可以使用鴻蒙的文件系統 API】

鴻蒙在 ETS (Extendable TypeScript) 中創建多級目錄或文件&#xff0c;可以使用鴻蒙的文件系統 API。 // 導入需要的模塊 import fs from ohos.file.fs;const TAG"Index" Entry Component struct Index {State message: string Hello World;build() {Row() {Colum…

11. vue pinia 和react redux、jotai對比

對比 Vue 的 Pinia&#xff0c;和 React 的 Redux、Jotai&#xff0c;分中英文簡要介紹、特性、底層原理、使用場景。 簡單介紹 1.1 Pinia&#xff08;Vue&#xff09; ? 英文&#xff1a;Pinia is the official state management library for Vue 3, designed to be simple…

OPenCV CUDA模塊目標檢測----- HOG 特征提取和目標檢測類cv::cuda::HOG

操作系統&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 編程語言&#xff1a;C11 算法描述 cv::cuda::HOG 是 OpenCV 的 CUDA 模塊中對 HOG 特征提取和目標檢測 提供的 GPU 實現。它與 CPU 版本的 cv::HOGDescriptor 類似&#xff0c;但利…

(一)單例模式

一、前言 單例模式屬于六大創建型模式,即在軟件設計過程中,主要關注創建對象的結果,并不關心創建對象的過程及細節。創建型設計模式將類對象的實例化過程進行抽象化接口設計,從而隱藏了類對象的實例是如何被創建的,封裝了軟件系統使用的具體對象類型。 六大創建型模式包括…

【QT】QT多語言切換

QT多語言切換 1.創建任意一個項目2. 利用lupdate&#xff08;language update&#xff09;工具生成.ts文件2.1 在工程中的.pro文件中指定.ts文件要存放的位置2.2 選擇工具--》外部--》Qt語言家--》更新翻譯 3. 利用 lrelease&#xff08;Language Release&#xff09;將 .ts 文…

【差分】詳解二維前綴和和差分問題

文章目錄 1. 二維前綴和2. 公式推導3. LeetCode 304 二維區域和檢索 - 矩陣不可變3.1 304 二維區域和檢索 - 矩陣不可變3.2 LeetCode 1139 最大的以 1 為邊界的正方形 4. 二維差分問題5. 二維差分的原理以及差分數組計算6. 題目6.1 牛客二維差分6.2 LeetCode 2132. 用郵票貼滿網…

Unity 大型手游碰撞性能優化指南

Unity 大型手游碰撞性能優化指南 版本: 2.1 作者: Unity性能優化團隊 語言: 中文 前言 在Unity大型手游的開發征途中,碰撞檢測如同一位隱形的舞者,它在游戲的物理世界中賦予物體交互的靈魂。然而,當這位舞者的舞步變得繁復冗余時,便會悄然消耗寶貴的計算資源,導致幀率下…

【hive】函數集錦:窗口函數、列轉行、日期函數

窗口函數 https://www.cnblogs.com/Uni-Hoang/p/17411313.html <窗口函數> OVER ([PARTITION BY <分組列> [, <分組列>...]][ORDER BY <排序列> [ASC | DESC] [, <排序列> [ASC | DESC]]...][<rows or range clause>]) )窗口函數主要是…

DAY 25 異常處理

目錄 DAY 25 異常處理1.異常處理機制2.debug過程中的各類報錯3.try-except機制4.try-except-else-finally機制作業&#xff1a;理解今日的內容即可&#xff0c;可以檢查自己過去借助ai寫的代碼是否帶有try-except機制&#xff0c;以后可以嘗試采用這類寫法增加代碼健壯性。 DAY…

幾何繪圖與三角函數計算應用

幾何繪圖與三角函數計算應用 設計思路 左側為繪圖控制面板&#xff0c;右側為繪圖區域支持繪制點、線、矩形、圓、多邊形等基本幾何圖形實現三角函數計算器&#xff08;正弦、余弦、正切等&#xff09;包含角度/弧度切換和常用數學常數歷史記錄功能保存用戶繪圖 完整實現代碼…

CSS 定位:原理 + 場景 + 示例全解析

一. 什么是CSS定位? CSS中的position屬性用于設置元素的定位方式,它決定了元素在頁面中的"定位行為" 為什么需要定位? 常規布局(如 display: block)適用于主結構 定位適用于浮動按鈕,彈出層,粘性標題等場景幫助我們精確控制元素在頁面中的位置 二. 定位類型全…