信息分析05:Excel VBA初步

王朝百态·作者佚名  2016-10-19  
宽屏版  字体: |||超大  

本文研究前面的例子,以9个酒店的200条顾客评论数据为基础,使用excel vba解决相对复杂的问题:根据7个二分变量,计算生成旅游动机变量。

0信息分析04:excel的if函数与vba初步

工具/原料

excel 2010

1.基本设置:显示【开发工具】菜单

1:excel 2010默认的情况下,【开发工具】菜单没有显示出来。

点击【文件】——【选项】

2:在弹出的窗口,点击【自定义功能区】——【主选项卡】

确保【开发工具】被选中,点击【确定】

基本设置2:另存为“启用宏的工作簿”

1:excel 2010增加了一些文件类型,为了程序运行方便,建议保存为“启用宏的工作簿”点击【文件】——【另存】

选择“启用宏的工作簿”进行保存。

基本设置3:r1ci引用式样

1:为了程序编写的方便,我们希望用数字显示列号,而不是a、b、c这种字母

点击【文件】——【选项】——【公式】

点选【r1ci引用式样】,点击【确定】即可

使用excel vba

1:9个酒店的200条在线评论数据的原始数据中是没有【旅行动机】这个变量的,是从前面的7个旅行动机变量(0表示不是,1表示是)合并生成的。

我们现在用excel vba程序实现它。

0信息分析04:excel的if函数与vba初步

2:这个工作需要单元格从【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 = 10 to 16

if cells(i, j).value = 1 then

cells(i, 22).value = cells(1, j).value

end if

next j

next i

3:点击【开发工具】——【visual basic】

在弹出的窗口,点击【插入】——【模块】

点击【插入】——【过程】

输入一个程序名称即可

4:写入程序即可,点击菜单上的三角按钮运行程序

运行后,点击vb界面左侧的excel图标,查看运行效果。

希望本文信息分析05:Excel VBA初步能帮到你。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有