多语言展示
当前在线:339今日阅读:91今日分享:37

excel vba实例002 如何使用vba生成梯形乘法表

早上玩用电脑玩单机Excel杀的时候,我的小孩(7岁)哭闹着要我给她写张99乘法口诀,本想上网网罗一张,结果发现连不到网,方想起网费未交。手写吧,嫌麻烦,看着屏幕上的Excel杀,心中一激灵,用Excel编。       Excel直接输入的话肯定太慢,幸好我轻轻触碰过excel vba,区区乘法表用vba来编的话五分钟不用,于是我让她稍稍等我两分钟,不要问为什么五分钟变成了两分钟,因为通常高手的目标时间值是要减半的。       然后打开excel,Alt+F11,一分钟不到,搞定!打印,彩打!小孩拿着乘法表喜滋喜滋屁颠屁颠的跑开了。——以上情节除“一分钟不到,搞定!”外,其他情节纯属臆想,读者切莫上当受骗。       附最终图一张。
工具/原料
1

硬件:电脑

2

软件:Office Excel(这里用的是正版excel2013)

方法/步骤
1

打开Office Excel,按Alt+F11打开“Microsoft Visual Basic for Applications”窗口,简单来说就是打开VBA编辑窗口。左键双击左侧工程窗口中的sheet1,打开编辑窗口。然后输入代码:       “sub 乘法表()           end sub'

2

然后根据需要设置变量,算式等,现在在“sub 乘法表() ”与“end sub”之间输入:       “Dim i As Integer           Dim j As Integer              For i = 1 To 9              For j = 1 To 9                k = i & '×' & j & '=' & i * j                Sheets('Sheet1').Cells(i, j) = k              Next j              Next i”       输入完成后试运行(VBA窗口工具栏上的绿色小三角),按快捷键F5也可以。可以看到,1×1、1×2、2×1...都有,满满81个单元格,但这不是我们想要的,我们要的是那种经典的梯形乘法表。没办法,改呗。       现在不要问程序代码什么意思,后面有解释。

3

现在先把之前试运行生成的结果删除,然后添加或者修改代码,代码变为这个样子:       “Dim i As Integer           Dim j As Integer              For i = 1 To 9              For j = 1 To 9                k = i & '×' & j & '=' & i * j                If i <= j Then                Sheets('Sheet1').Cells(j, i) = k                End If              Next j              Next i”        然后试运行,可以看到乘法表变成了经典虐待我美好童年的乘法表。

4

为了小孩童年不那么灰暗,有必要给它加一点色彩。添加单元格底色,代码就变成了:       “Dim i As Integer           Dim j As Integer              For i = 1 To 9              For j = 1 To 9                im = i Mod 2                k = i & '×' & j & '=' & i * j                If i <= j Then                Sheets('Sheet1').Cells(j, i) = k                  If im = 0 Then                   Cells(j, i).Interior.ColorIndex = 6                  End If                End If              Next j              Next i”       现在可以看到,每隔一列,乘法表的单元格就填上了底色。

5

那么另外那些列呢,这样的上色小孩子肯定鄙夷的,至于剩下的列怎么写代码,我的想法是先全部上色,再用隔列的方法覆盖上色,代码修改为:       “Dim i As Integer           Dim j As Integer              For i = 1 To 9              For j = 1 To 9                im = i Mod 2                k = i & '×' & j & '=' & i * j                If i <= j Then                  Sheets('Sheet1').Cells(j, i) = k                  Cells(j, i).Interior.ColorIndex = 4                  If im = 0 Then                   Cells(j, i).Interior.ColorIndex = 6                  End If                End If              Next j              Next i”       现在可以看到,是隔列隔列上一种颜色了。       为了对读者负责,我注释,见最后一图。再最后保存。当然你在宏里也可以看到叫做“乘法表”的宏。

注意事项

当试运行时出现错误时,不要慌,认真细致分析问题,这样才能有效解决问题。

推荐信息