返回目录:excel表格制作
首先需要感谢看官您抽空观赏本文,若有任何问题,欢迎您的指正。
另外大家若有什么好的想法或者效果需求,可以在评论区留言或者私信我,我会尽力尝试做一做。
如果您喜欢本文的话,可以点赞、订阅、关注、收藏、留言评论哦!谢谢!O(∩_∩)O~~
情景演示 ①
如上周六我发文所讲的,收纳两位粉丝的建议,所以今天我为大家提供一个VBA很简单的小案例:九九乘法表。
九九乘法表——样式①
对于上图这样一份九九乘法表,在Excel表格中,我们至少可以有以下几种方法实现:
1、手动输入所有的数字,毕竟值不大,口算即可,但相信也没有谁会这么做【输入次数81次】;
2、在每个单元格内输入乘法运算式,如B2:=B1 * A2,但这个方法更麻烦了【输入次数81次】;
3、在输入值的首行或者首列输入公式,如B2:=$B$1 * A2;C3: =$C$1 * A2,一直到 J9,然后选中这一行向下拓展,虽然比方法二简单些,但还不够简便【输入次数9次】;
4、用锁定行值或者列值进行计算,在B2输入:=B$1 * $A2,操作演示如下:
一般运算演示
PS:这里基本算是属于较快的运算办法,但是细心的您应该发现了,当计算完所有值后,所有的格式都发生了变化,如边框都变成了 B2 的样式了,所以做法还是需要改进。
5、一般公式操作流程的再次优化:选中 B2:J10 区域,然后再输入:=B$1 * $A2,按 Ctrl + Enter ;
一般公式运算演示 ①
PS:计算出来的值可以单独修改,每个单元格的样式也没有发生变化。
6、使用数组公式运算:选择区域 B2:J10 ,输入 =A2:A10*B1:J1,然后按 Ctrl + Shift + Enter;
数组公式运算演示 ①
PS:数组公式计算出来的值,不能单个修改,变动一个单元格的值,按 Ctrl + Shift + Enter 时其他单元格内的值会同时变动。
情景演示②
经过了上面的练习操作,我们稍微加大点难度,比如我需要的是下面这样的九九乘法表:
九九乘法表——样式②
那么对于这个样子的表格,似乎想到的可行方法是:先用上面的公式计算出全部的数据,然后按着 Ctrl 键选择不需要的区域,再一起删除。但这样看起来就觉得麻烦,是否能有简单快速的办法呢?
办法肯定是有的,这里只要找到运算逻辑,就能知晓选择用怎样的公式去解决这个问题。
在样表②中,空出来的部分都是属于右上半边的,有数值的部分属于左下半边,每个非空的单元格所对应的行的值与列的值相比较时会发现,列值总比行值要小。所以呢,加入一个判断语句,当列值小于或等于行值时,就计算其乘积,否则让其显示为空。
一般公式的解决办法——公式:=IF(B$1<=$A2,B$1*$A2,"");
一般公式运算演示 ②
数组公式解决办法——公式 =IF(B1:J1<=A2:A10,B1:J1*A2:A10,"")【记住按 Ctrl + Shift + Enter】;
数组公式运算演示 ②
VBA的解决办法
用公式解决了九九乘法表的运算,那么下面介绍一下用VBA解决该问题的相关信息。
用到VBA的逻辑很简单,对于九九乘法表样表①,我们只需要用到 For 循环即可;对于九九乘法表样表②则需要加一个 If 判断语句。
这里就不对VBA的效果进行演示了,直接为大家奉上这段运算代码。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Cells.ClearContents
Cells(1, 1) = "X"
For i = 1 To 9
Cells(i + 1, 1) = i
Cells(1, i + 1) = i
For j = 1 To 9
' 以下代码为 九九乘法表-样表① 的运算逻辑
' Cells(i + 1, j + 1) = i * j
' 以下代码为 九九乘法表-样表② 的运算逻辑
If j <= i Then Cells(i + 1, j + 1) = i * j
Next j
Next i
End Sub
您觉得本文对您有帮助吗? (单选) 0人 0% 有帮助,还不错哦 0人 0% 没帮助,因为我都知道 0人 0% ฅ( ̳• ·̫ • ̳) 喵
VBA进阶
使用VBA肯定不单单运行 9x9 的运算范围,有兴趣的读者可以考虑更多的VBA做法
那么下面为大家提供一个我临时制作的进阶版 乘法表 ,请您观赏 。
进阶版 乘法表
功能介绍
可以选择1-100以内的任意正整数,计算其乘法表(限制范围可调整);
输入错误值(非1-100内正整数)报错提示;
点击乘法表范围内任意单元格时,自动在单元格旁提示该值的乘法运算式;
提供渐变色配色方案(目前是需要在代码内调整,但可以增加一个滚动条,手动调整);
您是否希望作者公开VBA代码? (单选) 0人 0% 俺需要 ( ̄▽ ̄)~* 0人 0% 俺不要 (ノ‥)ノ 0人 0% 无所谓 ╮(╯_╰)╭
☆情报披露☆
每周一至周四的文章不再直接提供源代码,将通过投票、评论等数据来决定其代码是否公开;
于周五发布的文章中会附带【本周最喜欢文章投票】,若您会为本文投票,还请您记住本篇文章的编号:17070901;
文章内的投票数据仅占比40%,评论等文章效应占比30%,每周五的【最喜欢文章投票】占比30%;
投票等数据收集至每周五24点截止,综合上述条件后,于周六【代码放送】环节公布需求代码人数最多的一篇文章的代码信息。
文末 - 谢谢您嘞,(づ ̄3 ̄)づ╭❤
每一位读者的点赞、订阅、关注、收藏、留言评论都是对我的最大支持,谢谢各位帅哥美女!
同时也希望大家多多转发与评论留言,毕竟只有更多的人认可,我才更有动力为大家发布文章,提供代码。
再次谢谢大家!
友情链接
3、Excel-VBA 周日趣味玩法——Excel表格也能玩的手机游戏