在Excel VBA中range.offset和range.resize均可以重新选择区域,但range.offset表示偏移且偏移后尺寸不改变,range.resize则会根据输入的行数和列数重新定义区域.   一.range.offset(偏移行,偏移列) 偏移行和列若为正则向下和向右偏移,若为负数则表示向上和向左偏移,若为零则表示不偏移.   示例如下:range.offset(1,1)表示向下和向右移动一个单元格.   二.range.resize(行数,列数),返回调整后的区域大小 不…
小爬在之前的博文中多次提到,可以在VBA中写SQL来操作Excel文件,实现各类数据处理和分析需求.那么,你可能有这样的疑问:Excel原生的VBA,数据透视表,数据分析功能不够吗,为啥一定要用SQL来实现呢?在Excel VBA中使用SQL到底优势在哪儿?今天小爬就来带大家好好捋一捋这些问题. 首先,在VBA中写SQL,这基本算VBA的高阶功能,不是所有人都掌握,因此,上述的场景除了SQL,确实都有其它技术方案.其次,如果我们对别的技术运用的更熟练,我们完全可以用自己最擅长的技术栈来解决问题.…
小爬之前的文章 [Excel VBA中写SQL,这些问题你一定为此头痛过]中详细讲诉了一些常见的VBA 中使用SQL遇到的问题,这里再补充两个常见的问题场景及对应的解决方案,希望你们看了后能够思路开阔些,少走些弯路. 一.数据源Excel文件的工作表有些列的列名相同 我们知道,在商业数据库中创建表时,同一个表名下是不允许创建相同的字段的,且字段名要遵从一定规范.但在Excel文件中则无此限制,同一个工作表下,支持多列的列名相同.那么当我们用SQL来操作这类头疼的Excel文件时,该如何区分不同字…
每每提到Excel办公自动化,我们脑海里能想到的就是公式.数据透视表.宏.VBA,这也是我们大部分人数据分析的进阶之路.当我们对于常用VBA技巧已经相当熟练后,往往会有一种"我的VBA知识够用啦"的错觉,其实那只是因为我们收到的实际需求还不够复杂和多样化. 一旦哪天碰到略显复杂的业务需求时,我们才知道VBA变量.循环.条件判断.数组.字典.窗体,这些还只是VBA的基础知识罢了,会了这些,远达不到[蒂花之秀]的水准.我们今天的主角,SQL(结构化查询语言),通过嵌入VBA代码中,就可以解…
每30秒连接一次服务器,连接成功单元格变绿色,连接失败变红色,状态单元格为17行,2列 1,打开excel文件,进入vba编辑器,新建一个modules模块,在里面先写一个每30秒执行一次ConnServer宏 Sub StartTimer() Application.OnTime Now + TimeValue("00:00:30"), "StartTimer" ConnServer End Sub 2,再编写一个访问服务器代码的宏 Client.BaseUrl…
1.Worksheets("Sheet1").Range("A1").End(xlDown).Select     '意思为自A1起,返回从上往下的最后一个非空单元格 此时返回的单元格是A2,写法也可以拆分: Worksheets("Sheet1").Range("A1").Select Selection.End(xlDown).Select 2.Worksheets("Sheet1").Range(&q…
一.是一个对象,用于执行 正则表达式! 二.有三个属性:      1. Global属性: True or False, 指明模式是匹配整个字符串中所有与之相符的地方还是只匹配第一次出现的地方.默认值是False(表示只匹配第一次出现的地方).      2. IgnoreCase属性: True or False, 指明模式匹配是否大小写敏感.默认是False(表示搜索为大小写敏感).      3. Pattern属性:设置或返回用于搜索的正则表达式. 三.有三个方法:      1. E…
在Excel 中编写VBA 代码,最常做的事可能就是操作表单中单元格里的数据. 我这里总结一下如何从VBA 代码中操作单元格的数据. 在VBA 代码中操作单元格需要用到Range 对象,Range 是Excel 库(即Excel.exe文件)提供的一个类,封装了对表单中单元格的所有操作.Range 对象可以是一个单元格,一行单元格,一列单元格,或者四方的连续的单元格范围,甚至是几个单元格范围组合在一起.至于一个具体的Range 对象到底代表什么,就看我们怎么构造它了.(注,Range 类不支持N…
出处:http://www.360doc.com/content/21/1113/17/77710807_1004011085.shtml 前面我们讲的大多是**并操作单个的单元格,或者是连续的单元格区域,如果这些单元格区域不连续,如下图所示,单元格区域A1:B2.A4:B5.A7:B8分别隔开,各自独立,此时,有没有什么办法在VBA中一次获取这些区域(不能包含区域之间的空行)并对其进行相应的操作呢? VBA提供了一个Areas集合对象,用来解决这方面的情形. 如上图,在Excel中按Ctrl键…
Excel VBA出错时给出的错误信息极少,需要充分利用各种工具来进行调试. 1.编译错误 常见的编译错误有: 错误的源代码格式,比如if后面缺少then:在编辑器中该行会变成红色. 错误的语法结构,比如if和end if没有对应上:代码运行前会给出编译错误提示. 类型不匹配:函数输入的参数与定义时的参数类型不同时会出现该类错误. 变量未定义:指使用了没有申明的变量类型(当Option Explicit时) 建议: 格式规范化,严格缩进.VBA插件Smart Indent是一个很好的辅助工具.这…