999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

如何在Excel中使用VBA編程

2014-01-13 03:08:10蘇子偉
軟件工程 2014年1期

蘇子偉

利用Excel軟件處理大量數據的過程中,分離有些需要的數據是比較困難的,并且Excel中的宏函數并不能很容易、很純粹地解決這些問題。這時使用VBA進行數據處理就是最佳的選擇。VBA本身與Excel的結合是無縫的,且提供了大量豐富的函數。用VBA操縱表格的過程簡單,并且效率極高。

一、下面從六個方面說明VBA編程語言的結構

1.運算符

(1)賦值運算符: =

(2)數學運算符:&(字符連接符)、+(加)、-(減)、*(乘)、

/(除)、Mod(取余)、\(整除)、-(負號)、^(指數)

(3)邏輯運算符:Not(非)、And(與)、Or(或)、Xor(異或)、Eqv(相等)、Imp(隱含)

(4)關系運算符:= (相等)、<>(不等)、>(大于)、<(小于)、>=(不小于)、<=(不大于)、Like、Is

(5)位運算符:Not(邏輯非)、And(邏輯與)、Or(邏輯或)、Xor(邏輯異或)、Eqv(邏輯等)、Imp(隱含)

2.數據類型

下面列舉了一些常用類型及其所占的字節空間。

3.VBA的變量

4.VBA中的流程控制

(1)判斷結構

(2)循環結構

5.函數和過程的聲明與使用

函數和過程都是為了實現一個特定的機能而寫的獨立的模塊代碼。函數的聲明采用Function、End Function,而過程使用Sub和End Sub來表示。二者形式上很相像,但是函數與過程也有一些區別。

首先,Sub過程定義時無需定義返回值類型,而Function聲明一般需要用“As 數據類型”定義函數返回值類型。

其次,Sub過程中沒有對過程名賦值的語句,而Function實現中一定有對函數名賦值的語句。

再次,Sub與Function的調用方式不同。調用Sub過程是一個獨立的語句,而調用Function函數只是表達式的一部分。Sub過程不會用名字返回一個值,而Function函數一般會有一個返回值。

例子:

6.VBA中的注釋

注釋語句是用來說明程序中某些語句或函數實現了什么樣的功能,提供了什么樣的接口,使用者應該怎么使用的一種輔助性文字。VBA中注釋語句有兩種標識方法。

(1)單引號 例如:this is compare function.

(2)Rem 例如:Rem this is compare function.

這樣注釋語句就會變成綠色,區別于代碼字體的顏色。

二、一些經常使用的VBA操作

三、一個根據表格數據自動生成代碼的例子

下面表格中的Message列是代碼中用到的整形變量,ID(Hex)列列出了該整形變量的值。String列是通過整形變量能索引到的字符串。這樣程序中只要使用Message列的變量就能找出相應的字符串信息。如果有新的變量要追加,只需要在No.6的后面添加一行,重新運行生成代碼的宏(CreateMessagefile),代碼就會自動生成,維護起來非常的方便。

下面是例子的代碼實現。

Sub writeheader(obj As Variant, str As String)

obj.WriteLine ("/********************************")

obj.WriteLine (" file name : " & str)

obj.WriteLine (" author : zzzz")

obj.WriteLine (" Create date :" & Date)

obj.WriteLine ("********************************/")

End Sub

Sub CreateMessagefile()

Dim fso_h As Object

Dim fname_h As String

Dim col_message As Long

Dim col_ID_hex As Long

Dim col_string As Long

col_message = 3

col_ID_hex = 4

col_string = 5

'file name

fname_h = "MessageInfo.h"

fname_h = ThisWorkbook.Path & "\" & fname_h

'open header file

Set fso_h = CreateObject("Scripting.File

SystemObject")

Set obj_h = fso_h.CreateTextFile(fname_h, True, False)

'to write comment header of the function

writeheader obj_h, "MessageInfo.h"

'to guard multi-include header file

Dim multi_str As String

multi_str = "__LOG_INFORMATION_H__"

obj_h.WriteLine ("#ifndef " & multi_str)

obj_h.WriteLine ("#define " & multi_str)

obj_h.WriteLine ("")

Cells(65536, 2).Select

Selection.End(xlUp).Select

Row_num = ActiveCell.Row

For i = 3 To Row_num

obj_h.WriteLine ("#define " & Cells(i, col_message).Value & " " & "0x" & Cells(i, col_ID_hex).Value)

Next i

obj_h.WriteLine ("")

obj_h.WriteLine ("typedef struct msg_info")

obj_h.WriteLine ("{")

obj_h.WriteLine (Chr$(9) & "unsigned int msg_val;")

obj_h.WriteLine (Chr$(9) & "char * pMsg;")

obj_h.WriteLine ("}msg_info;")

obj_h.WriteLine ("")

obj_h.WriteLine ("msg_info MsgInfoTotal[] = {")

For i = 3 To Row_num

obj_h.WriteLine (Chr$(9) & "{" & Cells(i, col_message).Value & ", " & """" & Cells(i, col_string).Value & """" & "},")

Next i

obj_h.WriteLine ("};")

obj_h.WriteLine ("")

obj_h.WriteLine ("#endif")

obj_h.Close

MsgBox ("It is over to make Message information!")

End Sub

以上代碼運行后,會在和excel相同的目錄下生成文件MessageInfo.h,即我們需要自動生成的文件。

自動生成的MessageInfo.h代碼如下所示:

/*************************************************

file name : MessageInfo.h

author : zzzz

Create date :2013/12/20

**************************************************/

#ifndef __LOG_INFORMATION_H__

#define __LOG_INFORMATION_H__

#define msg_inf_1 0xC01A0001

#define msg_inf_2 0xC01B0002

#define msg_inf_3 0xD0120005

#define msg_inf_4 0xD0130006

#define msg_inf_5 0xD0140007

#define msg_inf_6 0xD0150008

typedef struct msg_info

{

unsigned int msg_val;

char * pMsg;

}msg_info;

msg_info MsgInfoTotal[] = {

{msg_inf_1, "file param error!"},

{msg_inf_2, "file logic error!"},

{msg_inf_3, "disk error!"},

{msg_inf_4, "no memory error!"},

{msg_inf_5, "function call failure!"},

{msg_inf_6, "array overflow!"},

};

#endif

本文通過VBA編程中的一個例子,使VBA的初學者對VBA的應用能有一個初步的認識,進而在工作學習中處理表格數據時能多一種解決思路。當然,想要精通VBA還需要讀者去深入地學習其相關的知識點,多學,多練,多總結,從而利用VBA工具更高效地處理數據。

主站蜘蛛池模板: 一级毛片在线免费视频| 另类欧美日韩| 日本午夜三级| 波多野结衣中文字幕一区二区| www亚洲天堂| 国产精品视频系列专区| 97se亚洲| 内射人妻无套中出无码| 欧美日韩国产综合视频在线观看| 日韩欧美中文| 久久综合国产乱子免费| 国产高潮流白浆视频| 国产流白浆视频| 免费国产不卡午夜福在线观看| 亚洲欧洲日韩综合色天使| 又黄又湿又爽的视频| 午夜无码一区二区三区| 午夜性刺激在线观看免费| 欧美综合在线观看| aⅴ免费在线观看| 国模视频一区二区| 一本无码在线观看| 国产午夜精品一区二区三| 一级一级特黄女人精品毛片| 中国成人在线视频| 欧美日韩高清在线| 中字无码精油按摩中出视频| 91国内外精品自在线播放| 国产91久久久久久| 免费一看一级毛片| 毛片手机在线看| 日韩精品免费在线视频| 国产一区二区精品高清在线观看| 亚洲精品无码AV电影在线播放| 亚洲性视频网站| 亚洲AⅤ综合在线欧美一区| 欧美亚洲国产视频| 日本一区高清| 国产亚洲欧美在线专区| 色首页AV在线| 在线毛片网站| 欧美国产综合视频| 香港一级毛片免费看| 成人日韩视频| 无码电影在线观看| 国产成人区在线观看视频| 一本大道视频精品人妻| 99精品伊人久久久大香线蕉| 青青久视频| 国产流白浆视频| 97国产精品视频自在拍| 亚洲一区二区三区国产精品| 色亚洲激情综合精品无码视频| 国产电话自拍伊人| 成人一区专区在线观看| 亚洲欧美色中文字幕| 91精品久久久无码中文字幕vr| av大片在线无码免费| 伦精品一区二区三区视频| 免费无码AV片在线观看国产| 欧美一级爱操视频| 亚洲欧洲日产国码无码av喷潮| 色综合天天综合| 国产精品林美惠子在线播放| 国产成人无码久久久久毛片| 国产成人精品一区二区免费看京| 国产精品lululu在线观看| 成人在线观看一区| 亚洲天堂777| 无码AV高清毛片中国一级毛片| 好吊色妇女免费视频免费| 色偷偷男人的天堂亚洲av| 色综合日本| 伊人精品视频免费在线| 久久无码免费束人妻| 亚洲国产一成久久精品国产成人综合| 国产福利一区在线| 国产va在线观看| 亚洲成人在线免费观看| av手机版在线播放| 波多野结衣第一页| 精品小视频在线观看|