|
| 1 | +# Excel 有哪些可能需要熟练掌握而很多人不会的技能? |
| 2 | +## 作者: 呆萌青年杨二傻 赞同: 307 |
| 3 | +上个视频: |
| 4 | + |
| 5 | + _ _ |
| 7 | + |
| 8 | +Excel 虚拟钟表 |
| 9 | + |
| 10 | +http://v.youku.com/v_show/id_XNjcyMjc3NTQ4.html |
| 11 | + |
| 12 | + |
| 13 | +撸了一天 VBA……实在是按耐不住啊……开机来回答 |
| 14 | +[ @未央之末 ](http://www.zhihu.com/people/b29d7985efa61866fdf25da24f65b736) |
| 15 | +的回答很赞……完全勾起了我的回忆………… |
| 16 | +最开始的时候用 Excel 完全是当做 Word 那种用法……偶尔敲个公式还局限于四则运算 |
| 17 | +上班之后需求就多了,身边有一位大神,用 Excel 把试验所有的计算都写成了板子,造福人类 |
| 18 | +亲眼目睹之后我深深的表示震惊… |
| 19 | +==================以上背景================= |
| 20 | +未央之末的回答已经很完美了,平时注意排版,注意数据维护 |
| 21 | +我再说说其他的几个方面的 |
| 22 | + |
| 23 | +** 定义名称: ** |
| 24 | +在公式引用的时候 A1 法是最常引用的,形如: |
| 25 | + |
| 26 | + |
| 27 | + |
| 28 | + =sum(A1:A10) |
| 29 | + |
| 30 | + |
| 31 | + |
| 32 | +公式下拉的时候某些变量不用更改相对索引,但是 Excel 会自动的更改相对索引,这时候使用 F4 可以固定维度 |
| 33 | + |
| 34 | + |
| 35 | + |
| 36 | + =$A$2+B2 |
| 37 | + |
| 38 | + |
| 39 | +这样即使下拉,也只有B2会变化。PS:连续按 F4 会切换锁定的维度 |
| 40 | +还有一种更便捷的方法就是定义变量 |
| 41 | +在单元格上右键选择自定义名称,如图: |
| 42 | + |
| 43 | + |
| 44 | +Excel 会智能的识别出目标单元格的名称,当然,如果冲突还需要更改,可以写入备注 |
| 45 | + |
| 46 | +当你自定义名称之后,再次引用这个单元格的时候只需要输入名称就可以了,在你输入名称的时候你所添加的备注也会实时出现,甚至没有拼写完你都可以使用 Tab |
| 47 | +自动补齐:  |
| 48 | +当你自定义名称之后,再次引用这个单元格的时候只需要输入名称就可以了,在你输入名称的时候你所添加的备注也会实时出现,甚至没有拼写完你都可以使用 Tab |
| 49 | +自动补齐: |
| 50 | + |
| 51 | + |
| 52 | +数组也可以定义为名称,感觉应该和 Range 对象一样 |
| 53 | +VBA 有时需要引用表格内容,不论是 A1 法还是用 Cells |
| 54 | +引用,一旦单元格出现增删行列,VBA引用的目标就会发生变化。这使得后期维护难度增大,使用名称可以避免这个问题,增删行列的时候 Excel 会自动更改。 |
| 55 | +需要注意的是在VBA中使用名称需要用中括号括起来。这时候自定义名称相当于一个全局变量(真正地全局……对整个 workbook |
| 56 | +全局),可以引用,甚至可以赋值,对比之下 A1 法和 Cells 则相当不美观也不利于阅读。 |
| 57 | +随手拷贝了几行,一个简单的例子。[PowerLevel] 和 [BULevel] 是数组,你们感受一下: |
| 58 | + |
| 59 | + |
| 60 | + |
| 61 | + RowNum = WorksheetFunction.Match(P, [PowerLevel], -1) + 4 |
| 62 | + ColumnNum = WorksheetFunction.Match([BU], [BULevel], 1) + 2 |
| 63 | + [KME] = PthAvg(T,Dt) |
| 64 | + |
| 65 | + |
| 66 | +我定义的名称,你们感受一下: |
| 67 | + |
| 68 | + |
| 69 | +** 函数以及自定义函数: ** |
| 70 | +Excel 的函数真的很牛x,第一的答案写的很详尽了,不表。输入的时候即时提醒做的很赞~ |
| 71 | +有时候需要一些特定的计算,如果全部用公式的话略显繁琐,并且公式会很长很长很长很长…… |
| 72 | +我曾经就写过很长很长很长很长很长的公式…(插一句,Excel 公式输入的地方是可以拉来的,结合 Alt + Enter |
| 73 | +可以实现换行和缩进等等,我来上个图……) |
| 74 | + |
| 75 | +自定义函数方便维护,花样繁多,玩大的还可以去直接导入其他语言开发的库 |
| 76 | + |
| 77 | +自定义函数方便维护,花样繁多,玩大的还可以去直接导入其他语言开发的库 |
| 78 | +直接上列子…… |
| 79 | + |
| 80 | + |
| 81 | + |
| 82 | + Function Rho(P1 As Double, P0 As Double) As Double |
| 83 | + '根据功率变化计算反应性 |
| 84 | + Rho = [beta_eff] / [lambda] / 60 * Log(P1 / P0) |
| 85 | + End Function |
| 86 | + |
| 87 | + |
| 88 | + |
| 89 | +然后你就可以愉快的使用了 |
| 90 | + |
| 91 | + |
| 92 | +唯一的遗憾是无法在 Excel 界面中即时提示……在 VBE 里面可以即时提示……顺便打车求解决方法……好像说注册 DLL 欺骗 Excel |
| 93 | +可以做到……求少折腾的方法 |
| 94 | + |
| 95 | + |
| 96 | +** VBA: ** |
| 97 | +VBA我就不多说了,能干的事情太多了,虽然速度有点慢,但是合理的优化,关闭刷新,处理日常的工作还是可以的。 |
| 98 | +不会写代码刚开始学可以直接录,录完了好好读一读,删掉无用的就好。经常看看自带的帮助文档,干货很多。不会了就慢慢地 google,百度…… |
| 99 | + |
| 100 | +** 界面: ** |
| 101 | +严格说起来界面应该属于 VBA,这部分和 VB 类似,不过貌似不支持控件数组,当然旁门左道也能实现控件数组。在 Workbook_Open 事件里面写上: |
| 102 | + |
| 103 | + |
| 104 | + |
| 105 | + Application.Visible = False |
| 106 | + xxx窗体.show |
| 107 | + |
| 108 | + |
| 109 | +让 Excel 伪装成一个程序……完全看不到 Excel 的界面~ |
| 110 | +PS:请不要看不起我们这些拖控件的…… |
| 111 | + |
| 112 | + |
| 113 | +** 引用与库函数: ** |
| 114 | +这里的引用特质 VBA 的工程引用,这时候可以绑定一些封装好的库文件,个人偏爱 MatrixVB,最早是我用来增强 VB 的运算的,后来玩 Excel |
| 115 | +发现也能在 VBA 里跑,不过参考文档很屎,老古董了。 |
| 116 | +大型计算忍不了 VBA 的渣速度的也可以用其他语言做库然后让Excel来用,不过我用的不是很好,尝试过用 FORTRAN 写,只局限于实验阶段…… |
| 117 | + |
| 118 | +** 自定义界面: ** |
| 119 | +如果自己用,直接在选项里面添加就可以了,如果是给别人用,可以做成含有 Ribbon 界面的加载项,一般后缀是 xla 和 xlam。 |
| 120 | +Ribbon 可以指定快捷键,指定 Screen Tip 和 Super Tip,XML 语言就好,喜欢折腾的不要错过。 |
| 121 | +半途而废的东西:在 Excel 中打开其他软件……用的是 |
| 122 | +Shell……做不下去了,因为完全没需求,从来都单手盲开任何常用软件网站……要问我为何这么屌,因为我有 AutoHotKey 呀 |
| 123 | + |
| 124 | + |
| 125 | +还有高大上的就不跟你们秀了………… |
| 126 | + |
| 127 | +** 其他: ** |
| 128 | +下面这些东西就有点奇葩了, ** FileDialog ,Shell,API ** |
| 129 | +这就属于瞎折腾了,不表~ |
| 130 | + |
| 131 | +另外两个: |
| 132 | + |
| 133 | + _ _ |
| 135 | + |
| 136 | +Excel 绘制 李萨茹图 |
| 137 | + |
| 138 | +http://v.youku.com/v_show/id_XNjcyMjc1Mzk2.html |
| 139 | + |
| 140 | + _ _ |
| 142 | + |
| 143 | +Excel 随机游动小球 |
| 144 | + |
| 145 | +http://v.youku.com/v_show/id_XNjcyMjc4NjU2.html |
| 146 | + |
| 147 | +#### 原链接: http://www.zhihu.com/question/21758700/answer/22411057 |
0 commit comments