本文研究前面的例子,以9个酒店的200条顾客评论数据为基础,使用Excel VBA解决相对复杂的问题:根据7个二分变量,计算生成旅游动机变量。
0信息分析04:Excel的IF函数与VBA初步
前期准备工作(包括相关工具或所使用的原料等)
Excel 20101.基本设置:显示【开发工具】菜单
Excel 2010默认的情况下,【开发工具】菜单没有显示出来。
点击【文件】——【选项】

在弹出的窗口,点击【自定义功能区】——【主选项卡】
确保【开发工具】被选中,点击【确定】

基本设置2:另存为“启用宏的工作簿”
Excel 2010增加了一些文件类型,为了程序运行方便,建议保存为“启用宏的工作簿”点击【文件】——【另存】
选择“启用宏的工作簿”进行保存。

基本设置3:R1CI引用式样
为了程序编写的方便,我们希望用数字显示列号,而不是A、B、C这种字母
点击【文件】——【选项】——【公式】
点选【R1CI引用式样】,点击【确定】即可


使用Excel VBA
9个酒店的200条在线评论数据的原始数据中是没有【旅行动机】这个变量的,是从前面的7个旅行动机变量(0表示不是,1表示是)合并生成的。
我们现在用Excel VBA程序实现它。
0信息分析04:Excel的IF函数与VBA初步

这个工作需要单元格从【V2】——【V201】,我们需要循环语句For,那么我们以i表示行号,就是
For i=2 to 201
单元格cells(i,22)的操作
Next i
----------
列10-16也可以做一个循环,用j表示列号
那就
For i=2 to 201
For j=10 to 16
单元格cells(i,j)的操作
next j
Next i
------------
每行怎么个操作呢,就是如果cells(i,j)的值等于1,那么cells(i,22)的值,等于j列对应的第一行的值,cells(1,j)
if cells(i,j).value=1 then
cells(i,22).value=cells(1,j).value
endif
------------程序就是
For i=2 To 201
For j=10 To 16
If Cells(i, j).Value=1 Then
Cells(i, 22).Value=Cells(1, j).Value
End If
Next j
Next i

点击【开发工具】——【visual Basic】
在弹出的窗口,点击【插入】——【模块】
点击【插入】——【过程】
输入一个程序名称即可




写入程序即可,点击菜单上的三角按钮运行程序
运行后,点击VB界面左侧的Excel图标,查看运行效果。



- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
