淡墨重叠旋旋而取之,谓之斡淡;以锐笔横卧惹惹(轻轻之意)而取之,谓之皴 擦;以水墨再三淋之,谓之渲;用水墨滚同而泽之(布施或铺开)谓之刷;以笔 头直往而指之,谓之拃(手持笔顺势轻拖之意);以笔头特下而指之谓之擢(抽 拔或耸起之意);以笔端而注之谓之点 点施于人物,亦施于木叶 以笔引而去 之谓之画,画施于楼屋,亦施于松针 雪色用淡浓墨作浓淡,但墨之色不一 而 染就烟色,就缣素本色萦拂,以淡水而痕之,不可见笔墨迹 风色用黄土或埃 墨而得之,石色用青黛和墨而浅深取之 瀑布用缣素本色,但焦墨作其旁以 得之 Pale ink overlapping spin spin and take, the model of light; With sharp pen lying annoy (gently) that take CunCa means; With ink repeated leaching, share; Use ink roll with the jersey (alms or spread) of brush. With written straight to refer to it, of Zha conveniently light drag (holding a pen); As written, and refers to the means of Zhuo (pull or upon); With pen and note of some points in character, and also give pen to MuYe lead of painting, painting in LouWu, also in pine needles snow shades of color with light thick ink, but the color of ink and dye is smoked, works 缣 ecru travelling breeze, with fresh water and mark, invisible ink pen ink sensing changes in the loess or Egypt, obtained by stone with indigo naturalis and ink and shallow depth to the waterfall with 缣 ecru, but JiaoMo next to
7,VBA代码编写技巧有哪些
方法1:尽量使用VBA原有的属性、方法和Worksheet函数 由于Excel对象多达百多个,对象的属性、方法、事件多不胜数,对于初学者来说可能对它们不全部了解,这就产生了编程者经常编写与Excel对象的属性、方法相同功能的VBA代码段,而这些代码段的运行效率显然与Excel对象的属性、方法完成任务的速度相差甚大。例如用Range的属性CurrentRegion来返回 Range 对象,该对象代表当前区。(当前区指以任意空白行及空白列的组合为边界的区域)。同样功能的VBA代码需数十行。因此编程前应尽可能多地了解Excel对象的属性、方法。 充分利用Worksheet函数是提高程序运行速度的极度有效的方法。如求平均工资的例子: For Each c In Worksheet(1).Range(″A1:A1000″) Totalvalue = Totalvalue + c.value Next Averagevalue = Totalvalue / Worksheet(1).Range(″A1:A1000″).Rows.Count 而下面代码程序比上面例子快得多: Averagevalue=Application.WorksheetFunction.Average(Worksheets(1).Range(″A1:A1000″)) 其它函数如Count,Counta,Countif,Match,Lookup等等,都能代替相同功能的VBA程序代码,提高程序的运行速度。 方法2:尽量减少使用对象引用,尤其在循环中 每一个Excel对象的属性、方法的调用都需要通过OLE接口的一个或多个调用,这些OLE调用都是需要时间的,减少使用对象引用能加快VBA代码的运行。 例如 1.使用With语句。 Workbooks(1).Sheets(1).Range(″A1:A1000″).Font.Name=″Pay″ Workbooks(1).Sheets(1).Range(″A1:A1000″).Font.FontStyle=″Bold″ ... 则以下语句比上面的快 With Workbooks(1).Sheets(1).Range(″A1:A1000″).Font Name = ″Pay″ .FontStyle = ″Bold″ ... End With 2.使用对象变量 如果你发现一个对象引用被多次使用,则你可以将此对象用Set 设置为对象变量,以减少对对象的访问。如: Workbooks(1).Sheets(1).Range(″A1″).value = 100 Workbooks(1).Sheets(1).Range(″A2″).value = 200 则以下代码比上面的要快: Set MySheet = Workbooks(1).Sheets(1) MySheet.Range(″A1″).value = 100 MySheet.Range(″A2″).value = 200 3.在循环中要尽量减少对象的访问。 For k = 1 To 1000 Sheets(″Sheet1″).Select Cells(k,1).value = Cells(1,1).value Next k 则以下代码比上面的要快: Set Thevalue = Cells(1,1).value Sheets(″Sheet1″).Select For k = 1 To 1000 Cells(k,1).value = Thevalue Next k 方法3:减少对象的激活和选择 如果你的通过录制宏来学习VBA的,则你的VBA程序里一定充满了对象的激活和选择,例如 Workbooks(XXX).Activate、Sheets(XXX).Select、Range(XXX).Select等,但事实上大多数情况下这些操作不是必需的。例如 Sheets(″Sheet3″).Select Range(″A1″).value = 100 Range(″A2″).value = 200 可改为: With Sheets(″Sheet3″) .Range(″A1″).value = 100 .Range(″A2″).value = 200 End With 方法4:关闭屏幕更新 如果你的VBA程序前面三条做得比较差,则关闭屏幕更新是提高VBA程序运行速度的最有效的方法,缩短运行时间2/3左右。关闭屏幕更新的方法: Application.ScreenUpdate = False 请不要忘记VBA程序运行结束时再将该值设回来: Application.ScreenUpdate = True