公式中使用了IF()、COLUMN()、ROW()函数。其中,ROW()用于提取所在单元格的行数,比如在A3单元格中输入“=ROW(A3)”,就会返回A3单元格所在的行数,即3。COLUMN()用于提取所在单元格的列号,最后用IF()函数判断A1单元格所在的列数是否大于其所在的行数,大于就返回空值,否则返回“列数×行数=行数*列数”。
方法④
其实九九乘法表,也可以用VBA程序来做,它可以使Excel更自动化,完成普通功能和函数无法完成的任务。
1.与方法一中步骤1一致。
2.在“开发工具”选项卡的“控件”组中单击“插入”按钮,在当前工作表的适当位置处添加一个命令按钮(ActiveX控件),在新添加的命令按钮上,单击鼠标右键,在快捷菜单中选择“属性”命令,设置其Caption属性为“方法4”。
3.在“开发工具”选项卡中点击“查看代码”命令,对该按钮的Click事件编写如下代码:
Private Sub CommandButton1_Click() Range("B1:J1").Value = Array(1, 2, 3, 4, 5, 6, 7, 8, 9) '设置上表头Range("B1:J1").Copy Range("A2:A10").PasteSpecial Transpose:=True '转置粘贴,设置左表头 Application.CutCopyMode = False '取消复制状态k = "=R1C&" & Chr(34) & "×" & Chr(34) & "&RC1&" & Chr(34) & "=" & Chr(34) & "&R1C*RC1" '形成公式 For r = 2 To 10 For c = 2 To r Cells(r, c).FormulaR1C1 = k '填写公式 Next Next Cells(1, 1).Select '光标定位End Sub
这段代码在单击“方法4”按钮时将被执行。
这段代码首先向B1:J1单元格依次填充数值1-9,将B1:J1区域的数据复制后转置粘贴到A2:A10单元格区域,然后取消复制状态,得到表格上的上表头和左表头。接着生成一个计算公式送给变量k,并用双重循环结构将公式填充到2-10行的下三角区域,变量k的值为“=R1C & "×" & RC1 &"=" &R1C*RC1”,其中,RC1表示当前第1列单元格,R1C表示当前列第1行单元格。程序用函数“Chr(34) ”返回双引号“"”,以实现双引号的嵌套。
方法⑤
最后再介绍一种用VBA制作九九乘法表的方法。
1.与方法一中步骤1一致。
2.与方法四中步骤2一致,将控件的Caption属性设置为“方法5”。
3.在“开发工具”选项卡中点击“查看代码”命令,对该按钮的Click事件编写如下代码:
Private Sub CommandButton1_Click()For r = 1 To 9 '按行循环Cells(r 1, 1) = r '填写左表头For c = 1 To r '按列循环Cells(1, c 1) = c '填写上表头s = c & "×" & r & "=" & c * r '形成等式字符串Cells(r 1, c 1).FormulaR1C1 = s '填写等式字符串NextNextEnd Sub
这段代码在单击“方法5”按钮时将被执行。