找回密码
 FreeOZ用户注册
查看: 9136|回复: 65
打印 上一主题 下一主题

[学习深造] EXCEL的漂亮小技巧 , VBA学习中

  [复制链接]
跳转到指定楼层
1#
发表于 27-5-2014 15:30:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?FreeOZ用户注册

x
本帖最后由 JunJun2013 于 19-6-2014 15:48 编辑

求职的时候,说自己具备Advanced Microsoft Office Skills 时, 有没有想过究竟哪些方面优于常人?

"会用"和outstanding,差距还是很大的。

我承认Word、Outlook、PowerPoint 潜能开发得极少,OneNote, InfoPath Designer, Pulisher, Share Point干脆就不知道怎么回事。


简单分享几个excel的必备tips吧。 欢迎补充。



很多键盘操作,包括Ctrl 和 F 键,(比如妇孺皆知的Ctrl +C Ctrl + V), 熟悉了的确比鼠标快!!
左手食指点"Tab"键,拇指点"Alt"键,快速切换窗口。


最常用的、加减乘除之外的公式,IF, vlookup(hlookup), sumif, midb, replace, indirect(这个其实不常用), 等等。

你必须会的功能:sorting排序, filter筛选, group/ungroup组合, hide/unhide隐藏, conditional formating条件格式
                                               paste special (可以只粘贴公式或数值,或可以让数据转体)
                                               read-only, protection(保护单元格不被修改或密码保护某文件)
                                                                  find & selection 功能

这些也要尝试:Data Validation(对不符合要求的输入给予警示), what-if analysis

这个符号可以把公式变成文字。

15,16楼有一些快速操作的tips.

找出循环应用的公式在哪  formulas /error checking /circular references

Hyperlink, 超链接让信息指向挺灵活的,本文件和跨文件都可以。
跨文件的公式就比较简单,直接打开目标文件,用=就行了, 就是要注意update的情况。
从外部引入数据可以是来自Access, SQLServer, Text, 需要的时候要乐于尝试,注意数值和格式。

Define Name也是快速操作之一,详见25楼。

PivotTable透视表,适合用于分类汇总等。

Macros 宏适合于重复动作,比如每次新开表,需要输入相同的表头,设置同样的字体和颜色,输入同样的footer等。
录制宏的时候要注意是否需要用Use Relative References(选中按钮后小图标显示浅黄亮色),这意味着操作可以运用于任何相对位置单元格。

一些重复性的光标操作,可以直接由系统录制宏(开始和结束时点相应两个按钮就行了),根据需要分配给控件。

复杂过程需要用vba写程序。(22楼起步操作介绍
通过Visual Basic插入Module或直接命名创造新宏,  编辑好程序后,保存宏,到控件的编辑界面,分配宏。

工具条控件(Form Controls) 比较直观,直接定义,也可以结合宏(用第一个button)。
ActiveX Controls 则更复杂灵活,更适合与VBA写的宏结合使用。
(7,8,9楼图)

具体不懂的,一律问google。

评分

参与人数 4威望 +200 收起 理由
愚夫 + 50 继续努力~~
tingnishuo + 50 你太有才了!
littleharry + 50 谢谢分享!
cais + 50 谢谢分享!

查看全部评分

回复  

使用道具 举报

2#
 楼主| 发表于 27-5-2014 15:36:02 | 只看该作者
本帖最后由 JunJun2013 于 27-5-2014 21:27 编辑

点几个大神来指教一下。
@cais 这里有Excel高手吗?

http://www.excel-easy.com/vba/events.html

目前还没开始研究excel vba 和 access vba的区别,但感觉excel的各方面应用都直观一些。

回复  

使用道具 举报

3#
发表于 27-5-2014 17:33:26 | 只看该作者
我只用LibreOffice
回复  

使用道具 举报

4#
 楼主| 发表于 27-5-2014 17:49:02 | 只看该作者
回复  

使用道具 举报

5#
发表于 27-5-2014 17:55:20 | 只看该作者
JunJun2013 发表于 27-5-2014 16:49
电子表功能简单得多吧?

你说的这些,除了VBA以外,别的都有。
回复  

使用道具 举报

6#
 楼主| 发表于 27-5-2014 17:59:28 | 只看该作者
本帖最后由 JunJun2013 于 27-5-2014 20:15 编辑
Serin 发表于 27-5-2014 16:55
你说的这些,除了VBA以外,别的都有。


唉。。。这不就是想要VBA吗?
这个LibreOffice Calc引以为荣的就是一个透视表的样子。
回复  

使用道具 举报

7#
 楼主| 发表于 27-5-2014 21:20:40 | 只看该作者
本帖最后由 JunJun2013 于 30-5-2014 13:53 编辑

选项下显示设计developer界面的设置,一般默认是不显示的。
回复  

使用道具 举报

8#
 楼主| 发表于 27-5-2014 21:22:43 | 只看该作者
如何插入控件
回复  

使用道具 举报

9#
 楼主| 发表于 27-5-2014 21:25:57 | 只看该作者
右键点击,编辑控件属性,格式,输出指向哪个单元格,功能可以逐一尝试,有选择项,滚动条,等
回复  

使用道具 举报

10#
发表于 27-5-2014 22:24:58 | 只看该作者
跟着学习
回复  

使用道具 举报

11#
 楼主| 发表于 27-5-2014 22:26:24 | 只看该作者

欢迎啊!
要是来指教就更好了!
回复  

使用道具 举报

12#
发表于 27-5-2014 22:33:22 | 只看该作者
JunJun2013 发表于 27-5-2014 19:26
欢迎啊!
要是来指教就更好了!

只有学习的份啦。。。
回复  

使用道具 举报

13#
发表于 28-5-2014 06:47:29 | 只看该作者
JunJun2013 发表于 27-5-2014 14:36
点几个大神来指教一下。
@cais 这里有Excel高手吗?

我也是靠问谷歌同学还有excel本身的帮助的。
Excel自己给的帮助信息也是很详细的。通常如果知道是要用哪个function,看帮助基本上就能解决问题。
不知道用哪个function的时候,可以google一下。
’ , 这个符号可以把公式变成文字。

这个我是第一次看到。没想到Excel也这么lispy啊。

评分

参与人数 1威望 +20 收起 理由
JunJun2013 + 20 呵呵,谢谢提醒,帮助是挺有用的

查看全部评分

回复  

使用道具 举报

14#
 楼主| 发表于 28-5-2014 12:18:58 | 只看该作者
公司里隐藏着一个VBA高手 :happy

可以上youtube看教学视频,Access all in one , excel的还需要看看哪个最实用
有那种样本文件可以下载
没有捷径可走,看完20个视频,几百分钟总是要花的
回复  

使用道具 举报

15#
 楼主| 发表于 29-5-2014 16:52:45 | 只看该作者
本帖最后由 JunJun2013 于 3-6-2014 11:56 编辑

快速复制worksheet的办法:
holding down the CTRL key while dragging the sheet tab of the original 按住CTRL,拖动工作表
用右键也能做到,相对慢一些。

选择指定单元格后,光标指向右下角,看到的十字架叫handle,drag这个handle, 就能快速复制,复制后会看到小方格,就是auto fill options, 点击可以选择不同的复制方式
更快速的复制是选定单元格后,按CTRL,双击选中区域下角的黑点,能快速FILL单元格(前提是空缺单元格,即旁边一列已经有数值),若格式(数值会默认为最佳的PATTERN)不满意,可以用auto fill options来改变

用这个可以选定所有的空格
Home > Find & Select > Go To Special…, and a Go To Special dialog box will appear, then check Blanks option.
选定后,对其中一个单元格输入公式或数值,按CTRL+ENTER可以让所有空单元格复制这个公式或数值,若是格式就直接可以批量修改啦,比如上色。

这个go to special还可以找到别的,比如公式部分,go to 则可以指向某个单元格


评分

参与人数 1威望 +50 收起 理由
tingnishuo + 50 谢谢分享!

查看全部评分

回复  

使用道具 举报

16#
 楼主| 发表于 29-5-2014 17:03:59 | 只看该作者
本帖最后由 JunJun2013 于 29-5-2014 18:52 编辑

Home > Find & Select 下有个"replace"也挺好用的,试验一下就知道用法,可以把某个数值的单元格替换成另一个
晚上发截屏图
回复  

使用道具 举报

17#
发表于 29-5-2014 19:05:08 来自手机 | 只看该作者
以前excel 2003经常写vba. 2010了就不怎么写了,大部分功能都有,实在不行的就导入access 然后在access 做query

评分

参与人数 1威望 +20 收起 理由
JunJun2013 + 20 聪明

查看全部评分

回复  

使用道具 举报

18#
 楼主| 发表于 29-5-2014 19:29:25 | 只看该作者
本帖最后由 JunJun2013 于 29-5-2014 18:39 编辑
EmilyS 发表于 29-5-2014 18:05
以前excel 2003经常写vba. 2010了就不怎么写了,大部分功能都有,实在不行的就导入access 然后在access 做q ...


你目前的工作,数据不复杂吧?
是啊,那些查询给人感觉足足够了。要是真的复杂用途,又是有软件系统。
不过,偷师Access的query是个好办法
我是说,有很多复杂的语句就从query的SQL里参考一下

其实excel的大部分普通功能都没有被多数人充分利用,VBA给人感觉用处不大
我认为excel编程的主要意义在于大多数人熟悉excel, 会有大量现成的数据,在这个基础上可以做些操作改进,比重新设计access文件简单可行

我朋友让我将她现有的复杂繁琐的excel文件改成access, 优化那些容易出错和重复的地方,我试了一下,很烦,要是涉及到其它部门、外部数据就更烦,毕竟习惯用access的人不多。

我除了想好好学一下之外,更主要的考虑的如何合理充分地利用推广这个功能,否则没有用处,既没有动力,时间久了也会忘记
回复  

使用道具 举报

19#
发表于 29-5-2014 22:12:53 | 只看该作者
JunJun2013 发表于 29-5-2014 18:29
你目前的工作,数据不复杂吧?
是啊,那些查询给人感觉足足够了。要是真的复杂用途,又是有软件系统。 ...

以前工作数据很复杂

现在基本完全不弄了

评分

参与人数 1威望 +20 收起 理由
JunJun2013 + 20 现在是语言很复杂~~

查看全部评分

回复  

使用道具 举报

20#
发表于 29-5-2014 23:30:59 | 只看该作者
跟着学习 excel学深奥了 足以靠这个来找一份reporting的工作了
回复  

使用道具 举报

21#
 楼主| 发表于 29-5-2014 23:34:00 | 只看该作者
chingwu 发表于 29-5-2014 22:30
跟着学习 excel学深奥了 足以靠这个来找一份reporting的工作了


我准备花三个月时间。
现在就是提炼一下小tips, 热热身

excel vba 编程最大的现状是普及度很低,是机会、也有做无用功的可能,适合财务,分析,金融业等人士

无论如何,宏和控件功能值得尝试开发。

跟帖互相学习的同学请督促我。
回复  

使用道具 举报

22#
 楼主| 发表于 30-5-2014 14:43:09 | 只看该作者
本帖最后由 JunJun2013 于 30-5-2014 22:25 编辑

Add-in 没什么大用处,不仔细研究了。

Go file/options/add-ins, 选中需要的add-in, 左小角的Manage旁边选"Excel add-ins",然后点"go"


创建新宏:
可以通过录制record macros(直观操作)或者VBA来实现。宏完成后保存文件时会提示保存成macro enable模式。

用VBA创建宏,两种方法:
1. 点macros按钮,输入新的名字name,点“Create",就会显示Visual Basic界面(图1)。
     可以看到:Sub name()
                      End Sub

2. 直接点开Visual Basic, 在VBAProject下Insert Module, 记得要指向正确的目标Workbook, 开始写Procedure, 在Sub字样后输入名字,再编写程序主题,退出会自动保存为宏(图2)

修改或删除宏,也可以通过点按钮"macros"("edit", "delete") 或进入Visual Basic/VBAProject/Modules (修改:双击,删除:File->Remove Module*)

关于文件种类:
普通文件Excel文件后缀是xls
带有add-in的是xlam
带有宏的是xlsm


在设计的时候,宏安全选择设置为”enable all macros(不推荐)"。
回复  

使用道具 举报

23#
发表于 30-5-2014 15:18:03 | 只看该作者
Serin 发表于 27-5-2014 16:33
我只用LibreOffice


国内的WPS也很好,对个人免费,用了很长时间,除了Word中的table有点问题,dictionary只支持美国英语,Excel中的数据透视有点刷新的问题,个人感觉其它方面都不错。

另外,在iPad上也是免费的,不像微软的Office 365在iPad上只能看不能编辑(编辑得花钱)。

评分

参与人数 1威望 +20 收起 理由
JunJun2013 + 20 谢谢分享!

查看全部评分

回复  

使用道具 举报

24#
发表于 30-5-2014 21:42:59 | 只看该作者
本帖最后由 EmilyS 于 30-5-2014 20:44 编辑
JunJun2013 发表于 29-5-2014 18:29
你目前的工作,数据不复杂吧?
是啊,那些查询给人感觉足足够了。要是真的复杂用途,又是有软件系统。 ...


现在Excel用的最多的就是filter/sorting + 各种vlookup + 写ms batch script + hyperlinking

最喜欢定义一个格子或者定义一个selection,然后一直用这个名字来refer  

ctrl + shift + 上、下箭头 是我最喜欢的shortcut

评分

参与人数 2威望 +70 收起 理由
webster + 50 谢谢分享!
JunJun2013 + 20 酷,收藏了

查看全部评分

回复  

使用道具 举报

25#
 楼主| 发表于 2-6-2014 12:09:04 | 只看该作者
谢谢EmilyS, 这个Define Name(Formulas Tab)挺好的,可以快速选定或者在公式里引用。
http://www.dummies.com/how-to/co ... -in-excel-2010.html
http://office.microsoft.com/en-a ... as-HA010342417.aspx

可以请你稍微说说怎么写batch script吗?谢谢啦!
回复  

使用道具 举报

26#
发表于 2-6-2014 12:31:57 | 只看该作者
提示: 作者被禁止或删除, 无法发言
回复  

使用道具 举报

27#
发表于 2-6-2014 12:50:07 | 只看该作者
本帖最后由 tingnishuo 于 2-6-2014 12:09 编辑

哇!好高深的!

求教下:计算出来的一个价格,小数点后保留两位,需要按下列规则进位,如何在excel里面实现:

1,如果最后一位是0 或者5,保持不变,例如:12.50, 17.85;
2,如果最后一位是8、9、或1、 2,向上或向下进为0。 如22.88为22.90, 15.11为15.10
3,如果最后一位为6、7或3、4,向下或向上进位为5; 如56.56为56.56,34.34为34.35
回复  

使用道具 举报

28#
 楼主| 发表于 2-6-2014 13:04:55 | 只看该作者
tingnishuo 发表于 2-6-2014 11:50
哇!好高深的!

求教下:计算出来的一个价格,小数点后保留两位,需要按下列规则进位,如何在excel里面实 ...

56.56 应该进(退)为56.55吧?跟雅思打分似的,是四舍五入的一种,用公式可以实现,但肯定有简洁版和啰嗦版。我试一下。也许VBA的条件STATEMETN可以做得容易操作点,这不还没正式学呢。

评分

参与人数 1威望 +50 收起 理由
tingnishuo + 50 谢谢分享!

查看全部评分

回复  

使用道具 举报

29#
发表于 2-6-2014 13:08:51 | 只看该作者
JunJun2013 发表于 2-6-2014 12:04
56.56 应该进(退)为56.55吧?跟雅思打分似的,是四舍五入的一种,用公式可以实现,但肯定有简洁版和啰嗦 ...

嘻嘻,是笔误啦,去改过来~~谢谢指正~

评分

参与人数 1威望 +20 收起 理由
JunJun2013 + 20 see 30#

查看全部评分

回复  

使用道具 举报

30#
 楼主| 发表于 2-6-2014 13:14:44 | 只看该作者
本帖最后由 JunJun2013 于 2-6-2014 12:19 编辑
tingnishuo 发表于 2-6-2014 11:50
哇!好高深的!

求教下:计算出来的一个价格,小数点后保留两位,需要按下列规则进位,如何在excel里面实 ...


我用最傻的公式办法可以实现,在右边加上三列。
A                     B                       C                                         D
56.56         =A2/0.05           =ROUND(E2,0)                     =F2*0.05=56.55

把不需要列隐藏起来。
30.48          609.60         610         30.50
29.01          580.20         580         29.00
18.07          361.40         361         18.05
19.00          380.00         380         19.00
26.03          520.60         521         26.05
56.56          1,131.20    1131         56.55

评分

参与人数 1威望 +50 收起 理由
tingnishuo + 50 你太有才了!

查看全部评分

回复  

使用道具 举报

您需要登录后才可以回帖 登录 | FreeOZ用户注册

本版积分规则

小黑屋|手机版|Archiver|FreeOZ论坛

GMT+11, 21-10-2024 20:40 , Processed in 0.080690 second(s), 48 queries , Gzip On, Redis On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表