VBA调用Excel函数公式的代码Excel教程
在Excel中使用函数公式,有两种使用方法,一是直接通过鼠标或手工输入的方法使用,称为直接使用;二是通过VBA间接调用。称为间接法。通过VBA调用Excel中的函数,具有相当的灵活性,当我们在处理未知区域即不确定有多少行和多少列的时候,如果使用VBA调用函数,那么,将是一种稍有智能性的数据处理方法。
下面,给大家详细介绍,在EXCEL中,如何通过VBA调用函数并给函数指明参数。
①种调用方法
Worksheets(1).Range("E6") = WorksheetFunction.Median(Range("A1:B4"))
这种调用形式,函数的参数是单元格地址区域,属于普通型,但数据区域的定义难于确定。
②种调用方法
Worksheets("sheet1").Range("D6") = Application.Min(Range("A1:B4"))
这种调用形式,函数参数的数据区域及工作表名称,属于普通型,灵活性不够。
③种调用方法
Worksheets(1).Range("C6") = Application.Max(Worksheets("Sheet1").Range("A1:B4"))
此类调用方法,直接指明工作表名称及数据范围,但还是缺乏灵活性。
④种调用方法
Worksheets(1).Range(Cells(6, 2), Cells(6, 2)) = Application.WorksheetFunction.Average(Worksheets(1).Range(Cells(1, 1), Cells(4, 2)))
和大家直接说吧,这种调用方法,是最标准、最灵活、最具有代表性、最完整、出错率最低的一种调用方法。
为什么这样说呢,因为一个工作薄包含多张工作表,只要在调用中,首先指明工作表名称再给出数据范围,这样,就不会和其它工作表混淆了,另外,我们对表的名称和数据区域的引用,完全都是通过可构造性的行列序号来标记的,这种方法是相当的灵活。
另外,调用函数的时候,也是逐渐引用。首先是Application引用,再次是WorksheetFunction引用,最后长到函数名称,如:Application.WorksheetFunction.Average,这样就可以保证逻辑性的完整,可以避免错误的发生。
请注意VBA只能调用EXCEL绝大多数的函数,而不是所有函数。不过呢,这已经足够使用了,足够使用了。
绛旓細R[4]C:R[11]C鏄疪1C1鏍峰紡銆傘備綘浠g爜涓厛閫夋嫨浜咲7.Range("D7").Select 涓嬮潰鐨勪唬鐮 ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R[4]C:R[11]C)"琛ㄧず鍦―7閲岄潰鍐欏叆鍏紡锛"=SUBTOTAL(9,R[4]C:R[11]C)"R[4]C:R[11]C 涓殑R[4]C 琛ㄧず鐩稿浜嶥7鍚戜笅鍋忕Щ4琛岋紝鍒椾笉鍙橈紝鍗矰11锛孯[...
绛旓細Cells(1, 3) = Left(Cells(1, 1), Application.Find(",", Cells(1, 1), 1) - 1)[c1] = Left([a1], Application.Find(",", [a1], 1) - 1)
绛旓細Excel涓璙BA鍑芥暟寮曠敤鍗曞厓鏍煎瓧绗︿覆浠g爜鐨勬搷浣滄楠ゅ涓嬶細鍗曞嚮Visual Basic宸ュ叿鏍忎笂鐨勫畨鍏ㄦ寜閽紝鍦ㄥ脊鍑虹殑瀹夊叏鎬у璇濇涓彲闈犲彂琛屽晢鏍囩椤瑰簳涓嬬殑鈥樹俊浠诲浜庘淰isual Basic 椤圭洰鈥濈殑璁块棶鈥欏墠鎵撯垰銆侫LT+F11鎵撳紑VBE缂栬緫鍣紝鍗曞嚮鑿滃崟宸ュ叿-寮曠敤锛屽湪寮瑰嚭鐨勫紩鐢-VBAProject瀵硅瘽妗嗕腑锛岄夋嫨寮曠敤Microsoft Visual Basic 6.0...
绛旓細1銆侀鍏堬紝鍦Excel琛ㄦ牸涓緭鍏ュ鍥惧唴瀹癸紝浠ユ柟渚垮湪VBA涓杩涜璇诲彇鍜屽鐞嗘搷浣溿2銆佽繘鍏BA鐜锛屽彲浠ユ寜閿洏涓婄殑鈥淎lt+F11鈥濊繘鍏ャ傚彸鍑烩淢icrosoft Excel瀵硅薄鈥濓紝浠庡叾鍙抽敭鑿滃崟涓夋嫨鈥滄彃鍏モ-鈥滅敤鎴风獥浣撯濋」銆3銆佹帴鐫鍚戠獥浣撲腑鎷栧姩涓涓滄爣绛锯濆拰涓涓滄寜閽濓紝鍙冲嚮鈥滄寜閽濓紝浠庡叾鎵╁睍鑿滃崟涓夋嫨鈥滃睘鎬р濋」銆...
绛旓細閿欒鐨勫弬鏁帮紝涔熷氨鏄杩欎釜鍑芥暟涓嶆槸杩欐牱鐢ㄧ殑锛屾病鏈夊悗闈㈢殑 鍗 鍜 鍙 鐨勪綅缃紝浣犲湪宸ヤ綔琛ㄩ噷璇曚竴涓嬪氨鏄煡閬撲簡銆備綘鎯宠〃绀哄崟鍙岀殑璇濊繕寰楀姞涓奿f璇彞鏉ュ垽鏂備笉杩囦綘杩欎釜娌″繀瑕璋冪敤宸ヤ綔琛ㄥ嚱鏁板惂锛岀洿鎺ョ敤閭d釜鏁版嵁闄や互2鐪嬫槸0杩樻槸1鏉ュ垽鏂崟鍙屼笉琛屽悧锛熻繖鏍蜂唬鐮佷細绠鍗曞緢澶氥
绛旓細浣犳槸鎯宠幏寰楁煇涓琛屽惂锛焪orksheet("sheet1").row(1)灏眔k浜 鏈绠鍗曠殑鍔炴硶 浣犳墦寮涓涓excel鏂囦欢 宸ュ叿-銆夊畯-銆夊綍鍒舵柊瀹 鐒跺悗閫夋嫨涓琛 鐒跺悗鍋滄褰曞埗 浣犲湪鐪嬬湅鑷姩鐢熸垚鐨勪唬鐮 涓嶆噦鐨勬寜f1鑾峰緱甯姪 浣跨敤杩欑鏂瑰紡浣犲彲浠ュ揩閫熷叆闂
绛旓細鐢VBA鍦Excel涓鍐欏叆鍏紡鐨鏂规硶锛氭妸鎻愬彇瀛楃鐨勫叕寮忓啓鍏heet2鍗曞厓鏍 Sub aa()Sheet2.Range("A1").Formula = "=left(sheet1!A1,5)"End Sub 鐩存帴鎶婄粨鏋滃啓鍏heet2鍗曞厓鏍 sub aa()sheet2.range("A1").value=left(sheet1.range("A1").value,5)end sub VBA涓昏鑳界敤鏉ユ墿灞昗indows鐨勫簲鐢ㄧ▼搴忓姛鑳斤紝...
绛旓細Excel琛ㄦ牸鐢╒BA瀹氫箟涓涓鍏紡锛屽叾瀹炲氨鏄嚜瀹氫箟鍑芥暟銆傛牴鎹綘鐨勮ˉ鍏呬俊鎭弿杩帮紝甯綘鍐欎簡涓涓嚜瀹氫箟鍑芥暟锛屼唬鐮侀渶瑕佷綘鎵嬪姩杈撳叆杩涘幓锛屽叿浣撴搷浣滄楠ゅ涓:1銆佹寜Alt+F11缁勫悎閿墦寮VBA鐨缂栬緫鍣;2銆佷緷娆″崟鍑烩滄彃鍏モ濊彍鍗--鈥滄ā鍧椻;3銆佸湪妯″潡涓啓鍏ヤ笅鍥剧孩鑹插瓧鐨勪唬鐮侊紝灏卞彲浠ヤ娇鐢ㄤ簡銆傛晥鏋滃浘濡備笅:VBA缂栬緫鍣ㄤ腑浠g爜鍥...
绛旓細绋嬪簭淇敼鐣岄潰濡備笅鍥撅細浣犵▼搴忛噷闈㈢殑浜嬩欢浠g爜姣旇緝澶氾紝寤鸿娉ㄦ剰浼樺寲锛屽敖鍙兘閬垮厤浜嬩欢閲岄潰甯︽潵浜嬩欢锛屽彲浠ュ弬鑰冩垜淇敼7琛屾椂鍊欑殑鎿嶄綔锛屾殏鏃剁姝簨浠跺彂鐢熴傜涓涓柟妗嗗唴鐨勪唬鐮佹枃鏈涓嬶紙鏈鍚庝笁琛屾槸鎷峰睆鍚庢柊澧炰簡锛屾湁涓瀹氱殑蹇呰锛夛細'鑷姩璁$畻:7琛=5琛*6琛 寮濮 For Each mRngA In Application.Intersect(Sh....
绛旓細鐢VBA鍦Excel涓鍐欏叆鍏紡鐨鏂规硶锛氭妸鎻愬彇瀛楃鐨勫叕寮忓啓鍏heet2鍗曞厓鏍 Sub aa()Sheet2.Range("A1").Formula = "=left(sheet1!A1,5)"End Sub 鐩存帴鎶婄粨鏋滃啓鍏heet2鍗曞厓鏍 sub aa()sheet2.range("A1").value=left(sheet1.range("A1").value,5)end sub VBA涓昏鑳界敤鏉ユ墿灞昗indows鐨勫簲鐢ㄧ▼搴忓姛鑳斤紝...