VBA-Excel

VBA

一、數據類型與變量

  1. 常用數據類型:

    • Byte:字節型,0~255。
    • Integer:整數型,用于存儲整數值,范圍 -32768 到 32767。
    • Long:長整型,可存儲更大范圍的整數,范圍 -2147483648 到 2147483647。
    • Double:雙精度浮點數,用于表示帶有小數的數值,精度較高。
    • String:字符串型,存儲文本信息,用雙引號括起來,如 “Hello World”。
    • Boolean:布爾型,只有 True 和 False 兩個值,常用于條件判斷。
    • Variant: 任意類型
      在這里插入圖片描述
  2. 變量聲明:

    • 使用 Dim 關鍵字,如 Dim num As Integer,聲明一個名為 num 的整數型變量。也可以在一行聲明多個變量,如 Dim a As String, b As Double

二、控制語句與運算符

  • 運算符與Java類似,只有幾個特殊的
算數運算符
2^3 2的3次方' 求商整數
5\2 = 2'相除取余Mod
12 Mod 9 = 3比較運算符
'比較兩個對象是否相同
對象1 Is 對象2 'Like 比較兩個字符串是否匹配
' 通配符 
* 任意多個字符
? 任意單個字符
# 任意單個數組[charlist] 位于charlist的任意一個字符
[!charlist]文本運算符
+ 拼接字符串
& 合并字符串邏輯運算符
And Or Not Xor 異或
Eqv 等價
Imp 蘊含

執行順序
算數 比較 邏輯

  • If 語句
If 條件 Then如果是
Else否則
End If ` 結束
  • For循環
For i = start To end` 循環部分
Next i
  • Select Case
Select Case 值 Case is 條件1Case is 條件2...Case Else ` 以上沒有匹配End Select
  • 遍歷集合
For Each 變量 in 集合名稱Next 變量
  • DoWhile循環
Do While 循環條件' 跳出循環
exit doLoop
DoLoop While 循環條件

三、子程序和函數

  1. 子程序(Sub)
    定義與作用:子程序是一段完成特定任務的代碼塊,不返回值。通常用于執行一系列操作。
Sub 子程序名稱([參數列表])End Sub
  1. 函數(Function)
    定義與作用:函數用于執行特定計算并返回一個值。可以在公式、條件判斷等地方調用函數。
Function 函數名稱([參數列表]) As 返回值類型函數名稱 = 返回值
End Function
  1. 內置函數
函數名稱功能描述
IsNumeric判斷參數中數據是否為數字
IsDate判斷參數中數據是否為日期
IsEmpty判斷參數中數據是否為 Empty(空)
IsArray判斷參數是否為數組
IsError判斷參數是否為錯誤值
IsNull判斷參數是否不包含任何有效數據
IsObject判斷參數是否為一個對象
Int返回小于或等于參數的第一個整數
Fix返回參數的整數部分
Round返回四舍五入的值
Sqr返回數值的平方根
Abs返回數值的絕對值
Rnd生成 0 - 1 之間的隨機數
  1. 文本函數
函數名稱功能描述
Len求參數中數據包含的字符個數
LeftRightMid分別用于截取最左側、最右側、從任意位置開始的指定數量的字符
LtrimRtrimTrim分別用于去掉最左端、最右端、左右兩端多余的空格
UcaseLcase分別將英文字母轉換為大寫、小寫
InStr查找指定字符串在另一個字符串中的位置
Replace將字符串中某個位置的部分字符串替換為新字符
Format對參數指定的數據進行格式化
  1. 時間日期函數
函數名稱功能描述
NowDateTime返回執行該函數時計算機的系統日期、時間數據
Timer返回從凌晨 0 時到執行該函數時經過的秒數
DateSerial返回參數指定年、月、日組成的日期數據
YearMonthDay返回參數指定日期中的年、月、日信息
TimeSerial返回參數指定時、分、秒組成的時間數據
HourMinuteSecond返回參數指定時間中的時、分、秒信息
Format將具有日期數據外觀的字符串轉為日期數據
DateValue將具有時間數據外觀的字符串轉為時間數據
DateDiff求兩個日期的間隔
  1. 數據轉換函數
函數名稱功能描述
Val將參數指定的數據轉為數值類型
CLng
CInt
CByte
CDbl將參數指定的數據轉為雙精度浮點型
CStr將參數指定的數據轉為字符串型
CDate將參數指定的數據轉為日期型
CBool將參數指定的數據轉為布爾型
CVar將參數指定的數據轉為 Variant 型

四、Excel 對象模型操作

  1. 工作簿(Workbook)
  2. 工作表(Worksheet)
  • 新建一個工作表
workshets.add
  • 獲取表的名稱
Sheets.Name
  • 獲取表的數量
Sheets.Count
  1. 單元格(Range)
  • 單元格賦值
    Range(“A1”).Value = “值”

連續選擇的
“A1:B10” A1 -> B10 連續
不連續選擇
“A1,B10” A1 和 B10

  • 根據行號列號引用單個單元格
sells(行,列)
' 行必須為數字,列可以是數字也可以是A
  • 選擇行
rows(行號).select' 也可以連續使用
rows(3:10).rows(1)  `表示第3到10的第一行
columns
  • 選擇單元格的相對單元格
offset
Range("A1").Offset(5,0)  `表示從A1開始向下移動5,向右移動1
' 負數表示反向
  • 獲得行或列的最后單元格
End(xlUp)
`可選值:xlToLeft、xlToRight、xlUp、xlDown
  • 單元格格式
將單元格區域存儲到變量中
Set
例如:set title = range("B2;G2")合并單元格
title.Merge水平居中
HorizontalAlignment = xlCenter字體大小
Font.Size = 12字體顏色
Font.ColorIndex = 1字體加粗
Font.Bold = true單元格內部
Range.Interior單元格背景顏色
Interior.ColorIndex邊框
Borders.LineStyle = true

在這里插入圖片描述

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

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

相關文章

kotlin 內聯函數 inline

高階函數實現的原理:函數類型其實是生成了一個對象 。 inline翻譯成中文的意思就是內聯,在kotlin里面inline被用來修飾函數,表明當前函數在編譯時是以內嵌的形式進行編譯的,從而減少了一層函數調用棧: inline fun fun…

PairRE: Knowledge Graph Embeddings via Paired Relation Vectors(論文筆記)

CCF等級:A 發布時間:2020年11月 25年3月24日交 目錄 一、簡介 二、原理 1.整體 2.關系模式 3.優化模型 三、實驗性能 四、結論和未來工作 一、簡介 將RotatE進行生級,RotatE只對頭實體h進行計算,PairRE對頭尾實體都進行…

從報錯到成功:Mermaid 流程圖語法避坑指南?

🚀 從報錯到成功:Mermaid 流程圖語法避坑指南 🚀 🚨 問題背景 在開發文檔或技術博客中,我們經常使用 Mermaid 流程圖 來可視化代碼邏輯。但最近我在嘗試繪制一個 Java Stream 轉換流程圖時,遭遇了以下報錯…

深入解析 Redis 實現分布式鎖的最佳實踐

前言 在分布式系統中,多個進程或線程可能會同時訪問同一個共享資源,這就可能導致數據不一致的問題。為了保證數據的一致性,我們通常需要使用分布式鎖。Redis 作為高性能的內存數據庫,提供了一種簡單高效的方式來實現分布式鎖。本…

2025年03月10日人慧前端面試(外包滴滴)

目錄 普通函數和箭頭函數的區別loader 和 plugin 的區別webpack 怎么實現分包,為什么要分包webpack 的構建流程變量提升react 開發中遇到過什么問題什么是閉包vue 開發中遇到過什么問題vue中的 dep 和 watcher 的依賴收集是什么階段什么是原型鏈react setState 是同…

Android10 系統截屏功能異常的處理

客戶反饋的問題,設備上使用狀態欄中“長截屏”功能,截屏失敗且出現系統卡死問題。 在此記錄該問題的處理 一現象: 設備A10上使用系統“長截屏”功能,出現截屏失敗,系統死機。 二復現問題并分析 使用設備操作該功能&…

openvela新時代的國產開源RTOS系統

openvela 簡介 openvela 操作系統專為 AIoT 領域量身定制,以輕量化、標準兼容、安全性和高度可擴展性為核心特點。openvela 以其卓越的技術優勢,已成為眾多物聯網設備和 AI 硬件的技術首選,涵蓋了智能手表、運動手環、智能音箱、耳機、智能家…

ENSP學習day9

ACL訪問控制列表實驗 ACL(Access Control List,訪問控制列表)是一種用于控制用戶或系統對資源(如文件、文件夾、網絡等)訪問權限的機制。通過ACL,系統管理員可以定義哪些用戶或系統可以訪問特定資源&#x…

JVM的組成--運行時數據區

JVM的組成 1、類加載器(ClassLoader) 類加載器負責將字節碼文件從文件系統中加載到JVM中,分為:加載、鏈接(驗證、準備、解析)、和初始化三個階段 2、運行時數據區 運行時數據區包括:程序計數…

RAG(Retrieval-Augmented Generation)基建之PDF解析的“魔法”與“陷阱”

嘿,親愛的算法工程師們!今天咱們聊一聊PDF解析的那些事兒,簡直就像是在玩一場“信息捉迷藏”游戲!PDF文檔就像是個調皮的小精靈,表面上看起來規規矩矩,但當你想要從它那里提取信息時,它就開始跟…

Python網絡編程入門

一.Socket 簡稱套接字,是進程之間通信的一個工具,好比現實生活中的插座,所有的家用電器要想工作都是基于插座進行,進程之間要想進行網絡通信需要Socket,Socket好比數據的搬運工~ 2個進程之間通過Socket進行相互通訊&a…

人工智能(AI)系統化學習路線

一、為什么需要系統化學習AI? 人工智能技術正在重塑各行各業,但許多初學者容易陷入誤區: ? 盲目跟風:直接學習TensorFlow/PyTorch,忽視數學與算法基礎。 ? 紙上談兵:只看理論不寫代碼,無法解…

mac calDAV 日歷交互

安裝Bakal docker https://sabre.io/dav/building-a-caldav-client/ 在Bakal服務器上注冊賬戶 http://localhost:8080/admin/?/users/calendars/user/1/ 在日歷端登錄賬戶: Server: http://127.0.0.1:8080/dav.php Server Path: /dav.php/principals/lion No e…

手機號登錄與高并發思考

基礎邏輯 一般來說這個驗證碼登錄分為手機號、以及郵箱登錄 手機號短信驗證,以騰訊云SMS 服務為例: 這個操作無非對后端來說就是兩個接口: 一個是獲取驗證碼,這塊后端生成6位數字expire_time 去推送到騰訊云sdk ,騰…

Python設計模式 - 適配器模式

定義 適配器模式(Adapter Pattern)是一種結構型設計模式,它用于將一個類的接口轉換為客戶端所期待的另一個接口。 注:在適配器模式定義中所提及的接口是指廣義的接口,它可以表示一個方法或者一組方法的集合。 結構 …

【前端工程化】

目錄 前端工程戶核心技術之模塊化前端模塊化的進化過程commonjs規范介紹commonjs規范示例commonjs模塊打包 amd規范、cmd規范前端工程化關鍵技術之npmwebpack原理 前端工程戶核心技術之模塊化 前端模塊化是一種標準,不是實現。commonjs是前端模塊化的標準&#xff…

關于CNN,RNN,GAN,GNN,DQN,Transformer,LSTM,DBN你了解多少

以下是神經網絡中常見的幾種模型的簡要介紹: 1. ?CNN (Convolutional Neural Network, 卷積神經網絡) ?用途: 主要用于圖像處理和計算機視覺任務。?特點: 通過卷積核提取局部特征,具有平移不變性,能夠有效處理高維數據(如圖像…

T113-i開發板的休眠與RTC定時喚醒指南

??在嵌入式系統設計中,休眠與喚醒技術是優化電源管理、延長設備續航的關鍵。飛凌嵌入式基于全志T113-i處理器開發設計的OK113i-S開發板提供了兩種休眠模式:freeze和mem,以滿足不同應用場景下的功耗與恢復速度需求。本文將詳細介紹如何讓OK1…

SpringBoot項目實戰(初級)

目錄 一、數據庫搭建 二、代碼開發 1.pom.xml 2.thymeleaf模塊處理的配置類 3.application配置文件 4.配置(在啟動類中) 5.編寫數據層 ②編寫dao層 ③編寫service層 接口 實現類 注意 補充(注入的3個注解) 1.AutoWir…

高性能網絡SIG雙月動態:加速 SMC eBPF 透明替換特性上游化進程,并與上游深度研討新特性

01、整體進展 本次雙月報總結了 SIG 在 1 月和 2 月的工作進展,工作聚焦在 ANCK CVE 和穩定性問題修復,以及上游 SMC eBPF 透明替換特性推進和多個話題討論上。 本月關鍵進展: 1. 推進 SMC eBPF 透明替換特性上游化,更新至 V7&…