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