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工具更高效地處理數據。

主站蜘蛛池模板: 亚洲精品手机在线| 欧美日一级片| 国产久操视频| 国产99视频在线| 国产网友愉拍精品视频| 456亚洲人成高清在线| 亚洲无限乱码| 日韩不卡高清视频| 色噜噜狠狠狠综合曰曰曰| 日韩毛片免费| 极品国产一区二区三区| 99精品福利视频| 亚洲成人黄色在线观看| 国产丰满大乳无码免费播放| 亚洲欧洲美色一区二区三区| 国产成年女人特黄特色毛片免| 欧美日韩一区二区三区在线视频| 男人天堂亚洲天堂| 狠狠做深爱婷婷综合一区| 在线亚洲小视频| 在线精品亚洲一区二区古装| 亚洲天堂日本| 2020极品精品国产| 97se亚洲| 波多野结衣一二三| 亚洲国产欧美国产综合久久 | 久久黄色小视频| 成人国产一区二区三区| 91精品国产91欠久久久久| 国产乱肥老妇精品视频| 国产色婷婷| 激情国产精品一区| 2024av在线无码中文最新| 国产浮力第一页永久地址| 婷婷色婷婷| 1024国产在线| 多人乱p欧美在线观看| 久久香蕉国产线| 成人另类稀缺在线观看| 久青草免费在线视频| 国产精品三级av及在线观看| 亚洲欧洲自拍拍偷午夜色| 国产精品亚欧美一区二区| 国产精品一区二区无码免费看片| 97人妻精品专区久久久久| 国产伦精品一区二区三区视频优播 | 久久国语对白| 人妻精品全国免费视频| 日韩午夜片| 国产精品亚洲欧美日韩久久| A级毛片高清免费视频就| 手机在线免费不卡一区二| 欧美福利在线观看| AV天堂资源福利在线观看| 色综合天天综合中文网| 亚洲一区二区三区中文字幕5566| 亚洲第一色网站| 欧美成人A视频| 日韩激情成人| 久久香蕉国产线| 播五月综合| 国产高清国内精品福利| www.亚洲一区| 在线观看欧美精品二区| 欧美日韩免费| 2021精品国产自在现线看| 免费Aⅴ片在线观看蜜芽Tⅴ| 色偷偷一区二区三区| 综合色在线| 沈阳少妇高潮在线| 国产午夜福利在线小视频| 激情亚洲天堂| 国产18在线| 色网站在线视频| 九九热这里只有国产精品| 真实国产乱子伦高清| 日韩亚洲高清一区二区| 九九这里只有精品视频| 狼友视频一区二区三区| 91成人免费观看在线观看| 免费毛片全部不收费的| 日韩一级二级三级|