原來(lái)寫畢業(yè)論文一直想做個(gè)調(diào)查問卷的,但是由于特殊的原因沒有做成,不過(guò)我想以后還是會(huì)用到的。幫同學(xué)填調(diào)查問卷的時(shí)候,覺得用EXCEL做調(diào)查問卷好過(guò)簡(jiǎn)單的word文檔的調(diào)查表,如果直接用電腦收集數(shù)據(jù)的話。EXCEL做調(diào)查問卷,后期的錄入要簡(jiǎn)單很多,而且問卷的美觀上也可以。于是一直在網(wǎng)上查了相關(guān)的資料,EXCEL做調(diào)查問卷,可以做到在共享下多人同時(shí)對(duì)其進(jìn)行操作,所有人的結(jié)果都會(huì)分別保存,不會(huì)被覆蓋,并會(huì)自動(dòng)根據(jù)選擇結(jié)果做出統(tǒng)計(jì),并以餅形圖方式將結(jié)果表現(xiàn)出來(lái)。這樣也就用了簡(jiǎn)單的VBA和EXCEL的“窗體”工具欄上的“分組框、選項(xiàng)按鈕、復(fù)選框、組合框、按鈕”等控件,還是比較簡(jiǎn)單的。今天按照書上的例子做了個(gè)《洗發(fā)水的調(diào)查問卷》,在網(wǎng)上也收集了幾套這樣調(diào)查問卷,《英語(yǔ)培訓(xùn)調(diào)查問卷》、《市場(chǎng)調(diào)查問卷》、《教師調(diào)查問卷》和《組織人員配置情況調(diào)查表》。他人做的調(diào)查問卷更是精美,很是值得學(xué)習(xí)。
附兩個(gè)重要的VBA代碼:
代碼一、
Public Sub 自動(dòng)記錄調(diào)查數(shù)據(jù)()
Dim Temp As Integer '定義一個(gè)用來(lái)保存工作表中單元格數(shù)據(jù)行數(shù)的整型變量
Dim count As Integer '定義一個(gè)用來(lái)保存調(diào)查結(jié)果記錄行數(shù)的整型變量
Temp = Sheets("Sheet3").[A1].CurrentRegion.Rows.count
'將用于保存調(diào)查數(shù)據(jù)的工作表Sheet3的記錄行數(shù)賦給count
count = Temp - 3 '工作表中有3行單元格保存字段名
Sheets("Sheet1").Select
Range("A32:L32").Select '在選定的工作表Sheet1選擇待保存數(shù)據(jù)的區(qū)域
Selection.Copy '對(duì)選擇的數(shù)據(jù)區(qū)域進(jìn)行復(fù)制操作
Sheets("Sheet3").Activate '激活保存調(diào)查數(shù)據(jù)的工作表Sheet3
Rows(Temp + 1).Select '選擇工作表中最后一條記錄的下一行單元格區(qū)域
ActiveSheet.Paste '粘貼數(shù)據(jù)
Cells(Temp + 1, 13).Value = count + 1 '實(shí)現(xiàn)數(shù)據(jù)記錄的自動(dòng)編號(hào)功能
Sheets("Sheet1").Select
Application.CutCopyMode = False '釋放進(jìn)行復(fù)制操作的單元格區(qū)域
MsgBox "記錄已成功保存,謝謝!", vbOKOnly, "確定" '以對(duì)話框的形式輸出信息
End Sub
代碼二、
Public Sub 統(tǒng)計(jì)調(diào)查數(shù)據(jù)()
Dim i, j, t As Integer '定義用于循環(huán)的整型變量
Dim count As Integer '定義用于保存記錄數(shù)的整型變量
Dim Temp As Variant '定義用于讀取單元格內(nèi)容的變體型變量
count = Sheets("Sheet3").[A1].CurrentRegion.Rows.count
'將保存調(diào)查數(shù)據(jù)工作表的記錄數(shù)賦值給count
Sheets("Sheet4").Select
For Each Temp In Range("B4:M9")
Temp.Value = "" '將單元格區(qū)域“B4:M9”的值置空
Next Temp
Sheets("Sheet3").Select
For i = 4 To count
For j = 1 To 12
t = j + 1 'Sheet3和Sheet4起始單元格之間有一個(gè)差值,即多了“選項(xiàng)數(shù)目”一列
Select Case Cells(i, j) '對(duì)工作表Sheet3中的單元格內(nèi)容執(zhí)行Select Case語(yǔ)句
Case 1
Worksheets("Sheet4").Cells(4, t) = Worksheets("Sheet4").Cells(4, t) + 1
'如果Sheet3中單元格值為1,則Sheet4中對(duì)應(yīng)的單元格的統(tǒng)計(jì)數(shù)值加1
Case 2
Worksheets("Sheet4").Cells(5, t) = Worksheets("Sheet4").Cells(5, t) + 1
'如果Sheet3中單元格值為2,則Sheet4中對(duì)應(yīng)的單元格的統(tǒng)計(jì)數(shù)值加1
Case 3
Worksheets("Sheet4").Cells(6, t) = Worksheets("Sheet4").Cells(6, t) + 1
Case 4
Worksheets("Sheet4").Cells(7, t) = Worksheets("Sheet4").Cells(7, t) + 1
Case 5
Worksheets("Sheet4").Cells(8, t) = Worksheets("Sheet4").Cells(8, t) + 1
Case 6
Worksheets("Sheet4").Cells(9, t) = Worksheets("Sheet4").Cells(9, t) + 1
End Select
Next j
Next i
Sheets("Sheet4").Select
Dim chtChart As Chart '定義一個(gè)圖表類型變量chtChart
Set chtChart = Charts.Add '將添加的圖表賦值給chtChart
With chtChart '使用With語(yǔ)句
.Location where:=xlLocationAsNewSheet '指定添加的此圖表的位置
'.Name = "數(shù)據(jù)分析圖" '設(shè)置圖表顯示在新建的“數(shù)據(jù)分析圖”工作表中
.ChartType = xlColumnClustered '選擇圖表類型為“柱形圖”
.SetSourceData Source:=Sheets("Sheet4").Range("A3:M9"), PlotBy:=xlRows '選擇數(shù)據(jù)來(lái)源
.HasTitle = True '設(shè)置圖表顯示標(biāo)題
.ChartTitle.Characters.Text = "市場(chǎng)調(diào)查數(shù)據(jù)分析" '設(shè)置圖表標(biāo)題為“市場(chǎng)調(diào)查數(shù)據(jù)分析”
.Axes(xlCategory, xlPrimary).HasTitle = True '設(shè)置圖表顯示x軸坐標(biāo)標(biāo)題