最近在自学Excel VBA,看的书本是《别怕,Excel VBA其实很简单》,这本书整体给我的感觉是通俗易懂,可操作性强。另外,个人感觉VBA确实挺实用的,代码书写也比较灵活。
下面是我根据书本(PDF页码P290-299)提供的操作步骤,采用Excel VBA进行调查问卷的设计。
主要内容有两部分,一是问卷界面的设计;二是调查结果的自动登记,这一步需要书写VBA代码。
(1)问卷界面设计
涉及到窗体控件的插入。
(2)调查结果的自动登记
学员填完问卷后,将结果保存到工作簿中的“调查结果”工作表中,通过编写程序解决这个问题。
添加一个标准模块,在模块中输入程序。
Public Sub degnji()
Dim xrow As Integer
With Worksheets("调查结果")
xrow = .[A1].CurrentRegion.Rows.Count + 1 ' 取得第一条空行行号
.Cells(xrow, "A") = [D5] ' 写入学号ID
' 写入第2到第9题选择结果
.Cells(xrow, "B").Resize(1, 16).Value = Application.WorksheetFunction. _
Transpose([J10:J25].Value)
.Cells(xrow, "R").Value = [B64].Value ' 写入学员对培训中心的建议
End With
Union([D5:E5], [J10:J25], [B64:G64]).ClearContents ' 清除调查问卷中的原有答案
MsgBox "已保存到“调查结果”工作表中!", vbInformation, "提示"
Exit Sub
End Sub
在“问卷”工作表中添加一个按钮,更改标签为“提交问卷”,并将编写好的代码指定给该按钮。
参考书目
[1] Excel Home. 别怕,excel vba其实很简单[M]. 人民邮电出版社, 2012.