单元格
taller_2000
不积跬步,无以至千里;不积小流,无以成江海
展开
-
使用VBA巧妙获取图表数据源区域
代码很简单,即使大家不知道`SetSourceData`方法,也可以通过录制宏的方法获得代码。现在问题来了,如何读取图表的数据源区域呢?`Chart`对象并没有`SourceData`属性,也没有`GetSourceData`方法。这只能说明微软并未提供相应的接口,我们仍然可以使用变通的方法来获取图表的数据源区域。原创 2024-04-14 12:19:10 · 544 阅读 · 0 评论 -
VBA如何记录单元格中字符内容和格式
实例需求:Excel单元格中的字符可以设置不同的字体格式(大小、颜色等),有时需要将这些信息保存起来,以便于后续代码的处理(例如替换后恢复原字体颜色,或者统计某种指定格式字符个数等等),此时使用自定义数据结构就可以高效的完成这个任务。原创 2024-03-06 02:59:29 · 352 阅读 · 0 评论 -
如何快速查找最后(最右侧)隐藏列
通常思路是从工作表最后列开始,倒序检查每个列,直到找到隐藏列或者检查完毕(无隐藏列)。其实可以借助VBA的一些特殊方法更快速实现这个需求。原创 2023-12-05 08:49:39 · 107 阅读 · 0 评论 -
VBA如何快速识别Excel单元格中的文本数字
Excel中一种非常特殊的数字,这些数字看似数字,其实是文本格式(下文简称为文本数字),在单元格的左上角会有一个绿色小三角作为标志,如B1:B3单元格。在编程时为什么需要区分普通数字和文本数字呢?先来看以下【立即窗口】种的测试代码。A1和B1单元格内容看似相同,但是测试代码的结果却完全不同。单元格A1为普通数字,加号之后的"0"被转换为数字零,然后进行加法运算。单元格B1为文本数字,加号作为字符串连接运算符,合并两个字符串。原创 2023-11-17 13:42:07 · 1029 阅读 · 0 评论 -
VBA快速交叉分段标记字符颜色
实例需求:A列中有不确定行数的数据,现在需要将数据按照每4位一组间隔标记颜色,如下图所示。原创 2023-08-01 13:46:36 · 200 阅读 · 0 评论 -
使用VBA在单元格中快速插入Unicode符号
在单元格中输入时并无法直接插入指定的Unicode编码字符,内置的插入符号功能中并不包含“Dingbats”,因为它并不是一种Windows字体。示例代码可以快速插入Dingbats符号。原创 2023-06-01 12:19:34 · 1149 阅读 · 0 评论 -
包含合并单元格的表格快速排序
现需要将原料配方成分表按照“原料含量”从高到低排序,如下图所示。由于表格中包含合并单元格,因此Excel的排序功能无法正常。原创 2023-06-01 12:13:19 · 712 阅读 · 0 评论 -
VBA为什么无法读取单元格字体名称?
这并不是VBA的bug,由于A4单元格中即有中文字符又有英文字母,虽然单元格字体设置为Arial,但是这个字体库中并不包含中文字符,因此Excel会将其中的中文字符设置为Excel的默认中文字体(我的电脑为等线字体)。代码并不复杂,使用单元格的Font.Name属性读取字体名称,从截图中可以发现C4单元格内容为空,单步调试时,可以发现irow=4时,【立即窗口】中可以查看每个字符的字体,中文字符为等线字体,并不是插图1中的单元格Arial字体。使用如下代码读取A列单元格字体名称,填写到C列中。原创 2023-05-30 07:08:17 · 239 阅读 · 0 评论 -
快速统计文本数字之和
实例需求:A列到F列为文本数据,每个单元格中包含3个数字,数字之间使用竖线分隔,现需要计算每个单元格中的数字之后。例如F15单元格内容为`10┃5┃18`,则需要计算10、5、18三个数字之和,结果为33,写入单元格M15,如下图所示。原创 2022-12-03 10:25:05 · 446 阅读 · 0 评论 -
Excel中文本数字单元格批量转换(不影响公式单元格)
Excel经常会遇到以文本格式存储的数字,单元格坐上角显示一个绿色三角标志,如果需要转换为真正的数字,通常使用的方法是复制全部单元格,然后选择性粘贴,但是具有公式的单元格就被破坏了,公式转为了静态数值,也就再进行任何计算。原创 2022-12-02 04:50:14 · 747 阅读 · 4 评论 -
数据拆分设置超链接
实例需求:工作表B列单元格中保存了多个图片链接地址(个数不固定),现需要将地址进行拆分,依次写入L列开始的单元格中,如下图所示。原创 2022-12-02 04:15:59 · 448 阅读 · 0 评论 -
快速获取InputBox选中区域的单个单元格引用地址
在VBA中使用`InputBox`方法可以让用户选择单元格区域,交互体验和输入公式参数基本上相同,其返回值为Range对象。语法格式参见微软帮助文档:如果用户选择了多个区域,如下图中黄色区域所示,那么使用Range对象的`Address`属性获取单元格引用地址时,结果为`$B$5:$B$7,$B$13,$B$19`。如果希望得到每个单元格的单独地址(`$B$5,$B$6,$B$7,$B$13,$B$19`),那么可以使用VBA处理一下。原创 2022-11-04 11:47:09 · 1281 阅读 · 0 评论 -
使用VBA设置数字格式
在Excel工作表中,使用自定义格式可以轻松实现指定宽度(数字个数)格式,例如设置单元格格式为“000”,输入数字6,则单元格显示内容为006,如下图所示。组成的字符串,只是此处作为格式字符,相当于Excel中的自定义格式。有的小伙伴可能说这个很简单,可以使用Range对象的Text数据,例如。接下来创建一个自定义函数实现格式转换,函数提供了两个参数。这个方法是可行的,其实还有更简单的方法。连接符将填充字符串和数字合并,然后使用。组成的字符串,以下简称为填充字符串。函数提取字符串从右侧开始的指定位数。...原创 2022-07-23 12:15:58 · 5188 阅读 · 0 评论 -
单词拆分(1/2)
实例需求:一段多行英文保存在A1单元格,现需要拆分出其中的单词,依次写入A5开始的第一列单元格中。原创 2022-06-15 00:45:54 · 186 阅读 · 1 评论 -
快速填充表格中的空单元格
实例需求:工作表中的表格起始行不确定,表格行数不确定,现需要将第一列的空单元格填充当前的日期。解决这个问题有两个核心知识点:1. 定位表格2. 定位空单元格这种表格在VBA对象模型中属于`ListObject`,并没有`Table`对象,这是一个很大VBA初学者容易踩的坑,知道了这个知识点就容易处理了。......原创 2022-06-14 23:29:58 · 386 阅读 · 0 评论 -
间隔色标记相同数据行
实例需求:如果D列相邻单元格内容相同,并且对应的E列单元格内容也相同,并且D列不为空,那么D列、E列和G列相应行使用间隔颜色进行标记,如下图所示。示例代码如下。Sub demo() lst = [a1].End(xlDown).Row arr = Range("d1:d" & lst) Range("b3:L" & lst).Interior.Color = xlNone Set dic = CreateObject("scripting.diction原创 2022-05-08 13:16:23 · 571 阅读 · 0 评论 -
拷贝合并单元格时保留格式
Excel中的合并单元格是个很奇葩的功能,有的用户非常喜欢这个功能,但是合并单元格的功能有时差强人意,处理起来非常麻烦,从数据处理的角度考虑,不推荐使用合并单元格。既然Excel提供了合并单元格功能,那么用户就可能会使用这个功能,例如A1:B4为合并单元格区域,其中的文字内容具有不同的格式,现在需要将其内容和格式拷贝到D1单元格,目标区域也是一个合并单元格区域,使用Excel的拷贝与粘贴,只能把文字拷贝过去,字体格式丢失了,如下图所示。Sub CopyMerge(srcCel As Range, de原创 2022-05-08 12:19:42 · 652 阅读 · 0 评论 -
Excel单元格区域快速导出为PDF
将Excel工作簿转换为PDF,可以使用“另存为”,也可以使用打印至虚拟PDF打印机。将Excel工作表转换为PDF,可以使用打印至虚拟PDF打印机。如何将单元格区域导出为PDF呢?设置打印区域,打印至虚拟PDF打印机,同样可以实现。但是这个方法太绕了,可以使用更简单的方法。也许读者知道ExportAsFixedFormat可以将工作簿转换为PDF,殊不知Range对象也有ExportAsFixedFormat方法。示例代码如下。Sub Demo() file_pdf = ThisWor原创 2022-05-07 11:57:00 · 1671 阅读 · 1 评论 -
如何获取单元格区域的行列范围
活动工作中选中的单元格区域为`B3:C7`,接下使用多种方法获取选中区域的行列范围。原创 2022-04-04 02:01:27 · 1193 阅读 · 0 评论 -
如何使用VBA实现将工作簿中全部表格转换为区域
工作簿中有很多个工作表,每个工作中又有多个表格,逐个操作实在太麻烦,而且容易出现遗漏,使用VBA快速解决这个问题。原创 2022-04-04 01:11:41 · 1905 阅读 · 0 评论 -
VBA实现设置链接单元格功能
在Excel设置链接单元格非常简单,选中形状(图片),在公式栏中输入`=A1`,就完成了链接单元格,修改A1单元格第值,将自动更新形状文字。原创 2022-03-09 14:05:08 · 1596 阅读 · 0 评论 -
如何在数据验证单元格区域禁用粘贴
为了确保数据准确性,在A列设置了数据验证,可以输入值的列表如下图所示。但是如果用户使用复制-粘贴,仍然可以输入其他值,如下图所示。原创 2021-09-01 10:54:45 · 3397 阅读 · 7 评论 -
神奇的条件格式,也许是个BUG
工作中有如图所示数据,设置了简单的条件格式,如果单元格中包含Excel,那么该单元格字体为红色,如下图所示。现在希望突出显示关键字Excel,将其字体颜色设置为绿色。手工操作并复杂,按F2键,单元格进入编辑状态,选中关键字,然后设置字体颜色,易如反掌,如下图所示。原创 2021-08-01 13:29:47 · 268 阅读 · 0 评论 -
快速合并单元格(2/2)
数据表如下图中A列至D列所示,需要将C列和D列的数据进行合并。每个编号组中,C列合并后,保留第一个单元格(户主姓名),结果如F列至I列所示。原创 2021-08-01 10:31:14 · 219 阅读 · 0 评论 -
快速合并单元格(1/2)
数据表如下图中A列至D列所示,需要将C列和D列的数据进行合并。每个编号组中,C列合并后,保留第一个单元格(户主姓名),结果如F列至I列所示。原创 2021-08-01 10:22:55 · 306 阅读 · 0 评论 -
如何在被保护的Excel工作表中设置格式
实例需求:为了避免工作表内容被意外修改,因此设置了保护工作表,但是审核者需要将错误数据标记出来(例如设置单元格填充黄色)。这个需求引发了很多讨论,有的网友建议利用工作表事件代码,在审核者选中单元格时,解除该单元格的保护,这样可以设置单元格格式了,但是单元格内容可能会被意外修改,那么将需要进一步将单元格内容保存下来,然后再进行核对 … 太复杂了,有些头疼的其实,这真的是把简单问题复杂化了,设置保护工作表时,选中【设置单元格格式】,就直接解决了,完全不需要任何代码。效果如下图所示。...原创 2021-07-31 13:52:17 · 1060 阅读 · 0 评论 -
切片器实现表格统计指标切换显示
大家对于切片器并不陌生,在透视表中通过切片器实现数据切片(筛选),其实Excel中的表格(有时被称为超级表格)也是可以使用切片器的。实例需求:对于如下统计表,由于数据列比较多,希望能够使用切片器实现控制显示统计指标。原创 2021-07-05 03:09:27 · 1388 阅读 · 5 评论 -
如何快速定位公式单元格区域
实例需求:如下数据表格中,E列和第6行为求和公式,现需要将红色框中的8个单元格区域设置背景色。原创 2021-07-02 04:03:29 · 990 阅读 · 0 评论 -
使用VBA在Office中输入特殊字符(续)
使用VBA在Office中输入特殊字符(3/3)感谢网友T_DC_Q提出的问题Function UTF16(sHex As String, Optional sMode As String = "HEX") As String Dim lByte, hByte, arrRes If Application.Hex2Dec(sHex) > &H10000 Then '&HDC00 = 56320, &HD800 = 55296原创 2021-05-03 12:42:36 · 3249 阅读 · 6 评论 -
如何实现图片填满单元格
大家可能经常需要在工作表单元格中插入图片,为了满足OCD领导的要求,图片一定要占满整个单元格,录制宏得到的代码,会存在过度缩放的问题,不同比率图片需要进一步调整代码。原创 2020-11-23 04:27:22 · 4891 阅读 · 0 评论 -
Excel合并单元格之真假李逵
读过《水浒传》的肯定知道“真假李逵”这个段子,假李逵要抢真李逵,当然肯定没有得逞了…示例数据如下图所示,数据保存在A~D列,F列是辅助列用于显示D列的公式。每种货号的第一行其实是用Sum函数实现的汇总行,可能有的朋友会说:这个表格设计的不清真(合理),用数据透视表就可以实现汇总。没错我也不推荐这个数据表格的形式,不利于数据处理和分析。但是今天的主题是合并单元格,就用这个奇葩的数据开练吧!嫡传正宗的合并单元格操作:选中D2:D4单元格区域,单击【合并后居中】按钮,在弹出的提示框中单击【确定】按钮完成原创 2020-07-04 07:51:07 · 428 阅读 · 0 评论 -
清空合并单元格之隐藏单元格
合并单元格有真有假,如果大家不知道二者的区别,请移步[《Excel合并单元格之真假李逵》]先了解一下(https://blog.csdn.net/taller_2000/article/details/107118993)。识别两种合并单元格的方法也很简单,辅助列使用公式读取一下单元格内容,如果合并单元格之隐藏单元格仍然有内容,那么这就是粘贴格式创建的合并单元格。接下来要讲的合并单元格是用粘贴格式产生的,如果希望清空D列中合并单元格中的隐藏单元格内容,例如:D3:D4,常规的操作方法是,选中D2,取消合原创 2020-07-04 12:14:40 · 1389 阅读 · 0 评论