Excel VBA编程

news2024/11/26 5:21:46

前两天我朋友找我帮忙,让给excel做个按钮功能,方便他们表格统计,我晚上研究了一下给他做出来了,这里记录一下入门操作和大概思路,具体怎么写VBA的代码我就不记录了,那玩意儿看教程去吧,也不是这一篇博客能讲完的,对于做开发的来说很简单,看一下就会了,不会做开发的同学就去B站找VBA的教程,跟着教程一步一步学吧。

vba编程,简单来说就是excel自带的一种编程语言,是用来方便扩展excel的功能及业务的,让用户完全可以自定义功能,自己开发出自己想要的东西,比如你想加个按钮,加个弹框,用最简单的操作来实现excel原本复杂且重复的操作。

1.想要实现vba开发,首先得要excel支持这个功能,默认一般是关闭的,所以需要我们先把开发工具这个选项给打开:
文件 > 选项 > 自定义功能区 > 勾选开发工具(勾选保存后,在excel文件上方,就可以看到开发工具的选项)
在这里插入图片描述
开发工具开放后,还需要启用宏:
文件 > 选项 > 信任中心 > 信任中心设置 > 宏设置 > 选择"启用所有宏"
在这里插入图片描述

2.添加宏
所谓的宏,也懒得讲什么官话,网上一搜就有,简单说就是,你就理解成一个功能代码块,一个宏,就是一个功能的代码。

比如现在的需求是做两个按钮,每个按钮有不同的功能,首先要做的就是添加宏代码,选择:
开发工具 > 宏
在这里插入图片描述

或者按Alt+F11也行,会弹出开发界面,下图中添加了button1和button2两个宏
在这里插入图片描述

写代码这里可以大概分为三个地方:
在这里插入图片描述
附上代码:

Sub button1()
    '获取所选单元格
    Dim x As Integer, y As Integer, tableCell As String
    x = Selection.Row()
    y = Selection.Column()
    f = Replace(Mid(Cells(1, y).Address, 2, 2), "$", "") ' 由列数得到列标
    tableCell = f & x
    
    '给单元格填写系统当前时间
    Dim finishTime As String

    finishTime = Range(tableCell).Value
    If finishTime = "" Then
        finishTime = Now
        Range(tableCell).Value = finishTime
    End If
End Sub

3.添加控件(比如添加一个按钮控件)
宏代码写完后,需要在excel中添加按钮,然后把按钮绑定上自己需要的宏:
开发工具 > 插入 > 表单控件中的按钮
在这里插入图片描述
按钮名称可以自定义,然后右键按钮 > 指定宏 > 添加刚才写的宏,有button1和button2,选择自己需要的一个绑定就行
在这里插入图片描述

到这里,一个按钮功能已经完成,我们可以测试一下
在这里插入图片描述

4.保存文件
这里保存文件还不能直接Ctrl+S保存,没用,当第二次打开文件时,之前写的宏代码就没了。
写了宏代码的文件,需要另存为,在保存类型中选择"Excel 启用宏的工作簿(*.xlsm)"选项,这样保存的文件,在第二次打开时,宏代码依旧存在。
在这里插入图片描述

Excel VBA编程简介到这里完成,简单说就是,设置 > 开发 > 使用 > 保存,至于具体的VBA代码怎么写,不会开发的同学我个人是强烈推荐b站的,特别适合新手学习,会开发的同学我估计最多花个几分钟时间,大概看看VBA的语法,变量,函数这些语言特性就自己会弄了。

最后,预祝童鞋们都能看到"Hallo Word!"
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/608464.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【网络】socket套接字

1.理解IP 每台主机都有自己的IP地址,所以当数据从一台主机传输到另一台主机就需要IP地址。报头中就会包含源IP和目的IP。源IP地址:发送数据报那个主机的IP地址,目的IP地址:想发送到的那个主机的IP地址我们把数据从一台主机传递到…

C语言-const关键字

1.const 关键字 const 是 constant 的缩写,const 在实际编程中用得比较多,意思是“恒定不变的”,它是定义只读变量的关键字,或者说 const 是定义常变量的关键字。 (可读,不可写) const 可以修饰变量,数组&a…

光明区马田大围城市更新旧改项目--华润集团

【华润光明马田大围旧改一期项目基础信息】 项目开发商:华润集团 占 地 面 积:约110151㎡ 建 筑 面 积:待专规图 物 业 类 型:华润一期范围内的待拆迁物业 项 目 进 度:直接确权阶段,即将立项 【项目现…

c++ new 源码学习一下

之前有一篇文章介绍了 new 的一些用法 c new 在指定内存上创建对象&#xff0c;今天结合源码来学习一下 new 更详细的用法。相关的源码&#xff1a;gcc git 1&#xff0c;void* operator new (std::size_t size); 我们可以在头文件<new>里看到它的原型&#xff1a; _G…

J2EE 技术的企业人事管理系统的设计与实现(论文+源码)_kaic

目 录 一、引 言 二、相关技术概述 (一) 基于 MVC 设计模式的 J2EE 技术 (二) MySql 数据库管理系统 (三) 基于 B/S 结构的系统安全 三、企业人事管理系统总体设计 (一) 系统需求分析 1.功能结构分解 2.员工档案管理模块 3.员工工资管理模块 (二) 系统总体结构设计 四、企业人…

2023-06-03 陕西省技能大赛 crypto 复现

文章目录 奇怪的sar题目描述&#xff1a;题目分析&#xff1a; Ham3题目描述&#xff1a;题目分析&#xff1a; BigDataEnc题目描述&#xff1a;题目分析&#xff1a; 奇怪的sar 题目描述&#xff1a; from Crypto.Util.number import *key flag{**********}bits 1024 msg …

ESP32+U8G2库显示中文

这里写自定义目录标题 在使用esp32u8g2oled进行中文先显示例程 废话不说&#xff0c;直接上代码 #include <Arduino.h> #include <U8g2lib.h> //软件SPI U8G2_SSD1306_128X64_NONAME_F_4W_SW_SPI u8g2(U8G2_R0, /* clock/ 14, / data/ 13, / cs/ 15, / dc/ 7, / r…

【AI绘图】三、stable diffussion操作界面介绍以及如何使用

上一篇&#xff1a;【AI绘图】二、stable diffusion环境准备与安装 stable diffusion操作界面介绍 操作界面总共分为5大块 1.模型选择区&#xff1b;点击跳转 2.功能区域&#xff1b;点击跳转 3.提示词输入&#xff1b;点击跳转 4.参数设置区&#xff1b;点击跳转 5.出图区点击…

计算机基础--->操作系统(1)

文章目录 简单说说操作系统操作系统的主要功能用户态和内核态为什么要有用户态和内核态&#xff1f;只有一个内核态不行吗&#xff1f;用户态和内核态是如何切换的系统调用系统调用过程 简单说说操作系统 操作系统是一种系统软件&#xff0c;它管理计算机硬件资源和提供服务给应…

Jenkins+Docker+SpringCloud微服务持续集成之集群部署

一、集群部署流程说明 环境配置 #环境配置 hostnamectl set-hostname web2-server && su systemctl stop firewalld systemctl disable firewalldvim /etc/selinux/config SELINUXdisabledvim /etc/resolv.conf nameserver 114.114.114.114#安装依赖包 yum install -y…

如何通过python写接口自动化脚本对一个需要调用第三方支付的报名流程进行测试?

对于需要调用第三方支付的报名流程进行接口自动化测试&#xff0c;可以通过以下步骤来编写Python代码&#xff1a; 如果你想学习自动化测试&#xff0c;我这边给你推荐一套视频&#xff0c;这个视频可以说是B站百万播放全网第一的自动化测试教程&#xff0c;同时在线人数到达1…

微信小程序开发实战 ②③(全局数据共享)

作者 : SYFStrive 博客首页 : HomePage &#x1f4dc;&#xff1a; 微信小程序 &#x1f4cc;&#xff1a;个人社区&#xff08;欢迎大佬们加入&#xff09; &#x1f449;&#xff1a;社区链接&#x1f517; &#x1f4cc;&#xff1a;觉得文章不错可以点点关注 &#x1f4…

Nginx:Nginx网站服务(一)

Nginx&#xff1a;Nginx网站服务 一、编译安装Nginx服务1.1 关闭防火墙&#xff0c;将安装nginx所需软件包传到/opt目录下1.2 安装依赖包1.3 创建运行用户、组&#xff08;Nginx 服务程序默认以 nobody 身份运行&#xff0c;建议为其创建专门的用户账号&#xff0c;以便更准确地…

【全面突击数据结构与算法001】绪论篇,数据结构的基本概念

&#x1f341;前言 &#x1f451;作者主页&#xff1a;&#x1f449;CSDN丨博客园 &#x1f3c6;学习交流&#xff1a;&#x1f449;在下周周ovoの社区 &#x1f48e;全面突击数据结构与算法系列专栏&#xff1a;&#x1f449;数据结构与算法专栏 PS&#xff1a;本篇文章主要综…

【架构基础】简单设计原则

简单设计来源于极限编程&#xff08;ExtremeProgramming&#xff0c;简称XP&#xff09;。XP是由KentBeck在1996年提出的&#xff0c;是一种软件工程方法学&#xff0c;是敏捷软件开发中最富有成效的几种方法学之一。XP存在四个核心实践&#xff1a;TDD&#xff08;Test-Driven…

Lecture 6 Sequence Tagging: Hidden Markov Models

目录 Problems with POS Tagging 词性标注的问题Probabilistic Model of HMM HMM的概率模型Two Assumptions of HMM HMM的两个假设Training HMM 训练HMMMaking Predictions using HMM (Decoding) 使用HMM进行预测&#xff08;解码&#xff09;Viterbi AlgorithmHMMs in Practic…

地震勘探基础(五)之地震资料数字处理

地震资料数字处理 地震勘探主要包括地震资料野外采集&#xff0c;地震资料数字处理和地震资料地质解释三大部分。其中地震资料数字处理需要利用高性能的超级计算机和先进的处理软件系统。地震资料的质量和成像精度直接决定了油、气勘探的成功率。 地震资料数字处理的主要目的…

快速解读GC日志

本文介绍GC日志的输出格式, 以及如何解读GC日志, 从中提取有用的信息。我们通过 -XX:UseSerialGC 选项,指定JVM使用串行垃圾收集器, 并使用下面的启动参数让 JVM 打印出详细的GC日志: -XX:PrintGCDetails -XX:PrintGCDateStamps -XX:PrintGCTimeStamps 这样配置以后&#xff…

postgreSQL/kingbase limit分页查询,结果乱序

postgres/kingbase limit分页查询&#xff0c;结果乱序 现象排查总结解决办法1.session中关闭synchronize_seqscans2.查询时带上order by 现象 我使用kingbase8&#xff0c;使用select * from xx limit 0,1000 每次查出来的结果都不一样。 排查 1.由于kingbase的文档较少&am…

Zinx框架学习 - 读写协程分离

Zinx - V0.7 读写协程分离 之前connection使用StartReader对客户端的数据接下来我们就要对Zinx做⼀个⼩⼩的改变&#xff0c;就是与客户端进修数据交互的Gouroutine由⼀个变成两个&#xff0c;⼀个专⻔负责从客户端读取数据&#xff0c;⼀个专⻔负责向客户端写数据。这么设计有…