【分享成果,順熙正能量】這個世界上最不想接觸的是沒有能力但同時(shí)擁有很多感情的人。VBA可以提高你的能力,學(xué)習(xí)可以磨礪你的感情。

《VBA信息獲取與處理》教程是我推出的第六個教程,目前第一版已經(jīng)修訂。本教程定位為高級、初級、中級結(jié)束后的教程。

信息、意義非常廣泛,是我們?nèi)粘I钪胁豢扇鄙俚囊徊糠帧奶鞖夂皖A(yù)報(bào)、人際關(guān)系到宇宙洪荒,都是信息的一部分。信息在一定程度上是數(shù)據(jù),也可以用數(shù)據(jù)表示,獲得信息就是數(shù)據(jù)的獲取。本教程介紹了收集應(yīng)用程序信息、利用隨機(jī)信息、發(fā)送電子郵件、收集VBA internet數(shù)據(jù)、VBA延遲操作、剪貼板應(yīng)用程序、Split函數(shù)擴(kuò)展、工作表信息以及與其他應(yīng)用程序的交互、利用FSO對象、收集工作表和文件夾信息、收集圖形信息以及定制工作表信息函數(shù)非常抽象,更有研究價(jià)值。

本教程共2冊、84冊,今后一段時(shí)間內(nèi)將陸續(xù)推出修訂后的教程內(nèi)容。今天的內(nèi)容是第4課:在EXCEL中操作WORD應(yīng)用程序

第4節(jié)在EXCEL中打開和修改WORD文件

上述主題說明了如何在WORD中打開EXCEL。那么,如何在EXCEL中打開WORD呢?本課介紹了使用CreateObject函數(shù)和GetObject函數(shù)設(shè)置引用以及獲取已打開的WORD文件信息的主題。為了提高實(shí)用性,程序還提供了向WORD表單(非嵌套)添加數(shù)據(jù)的方法。此數(shù)據(jù)來自EXCEL。

1確保在EXCEL中打開了WORD文件

在EXCEL確定WORD文件是否打開后,可以使用GetObject函數(shù)獲取WORD主程序的返回。在這里,我使用WordIsOpen的函數(shù)過程。代碼如下:

function word is open(byval strdocname as string)as boolean

確定Word文檔是否重復(fù)打開

Dim myWd As Object

WordIsOpen=False

Set myWd=Nothing

On Error Resume Next

StrDocName=UCase(strDocName)

請確認(rèn)單詞程序已打開。

Set mywd=getobject(,' word.application ')

For Each doc In myWd。Documents

UU=UCase)

If UU=strDocName Then

WordIsOpen=True

Exit For

End If

next

Set myWd=Nothing

End Function

代碼屏幕截圖:

代碼說明:這是函數(shù)過程。必須輸入strDocName字符串。輸入此字符串以確保該文件的文件名已打開,然后使用set mywd=getobject(,' word.application ')語句查看word是否已打開的具體說明。

WordIsOpen=False首先將WordIsOpen的初始值設(shè)置為False

On Error Resume Next是創(chuàng)建錯誤處理語句,該語句在word文件未打開時(shí)打開,以處理后續(xù)錯誤。

For Each doc In myWd。Documents

UU=UCase)

If UU=strDocName Then

WordIsOpen=True

Exit For

End If

next

上面的語句是遍歷的循環(huán)。如果打開的文件包含指定文件名的文件,則返回WordIsOpen=True。

兩周程序和WORD的表單數(shù)據(jù)修改程序

在中,主程序使用WordIsOpen函數(shù)來確定需要判斷的文件,如果未打開,則執(zhí)行打開操作,然后進(jìn)行修改。如果已打開,請執(zhí)行修改操作。

代碼如下

下:

Sub MYNZB()

Dim RR As Boolean

Dim myWdA As Object

Dim MyDocument As Object

RR = WordIsOpen & "\001 在WORD中激活EXCEL.docm")

If Not RR Then '創(chuàng)建Word對象

Set myWdA = CreateObject("Word.Application")

myWdA.Visible = True '打開指定文檔

Set MyDocument = myWdA.Documen & "\001 在WORD中激活EXCEL.docm")

'獲取當(dāng)前Excel的SHEET2的單元格C2數(shù)據(jù)

mystr = T(2).Cells(2, 3).Value

'將取得得值設(shè)定到Word表格的1行2列中

MyDocument.Tables(1).Cell(2, 3).Range.Text = mystr

MyDocument.Save

Set myWdA = Nothing

Set MyDocument = Nothing

Else

Set myWdA = GetObject(, "WORD.Application")

For Each doc In myWdA.Documents

UU = UCase)

If doc.FullName = T & "\001 在WORD中激活EXCEL.docm" Then

mystr = T(2).Cells(2, 3).Value

'將取得得值設(shè)定到Word表格的1行2列中

doc.Tables(1).Cell(2, 3).Range.Text = mystr

doc.Save

Set doc = Nothing

Exit For

End If

Next

Set myWdA = Nothing

End If

End Sub

代碼截圖:

代碼解讀:上述代碼先利用WordIsOpen函數(shù)判斷"001 在WORD中激活EXCEL.docm"是否已經(jīng)打開,如果沒有打開,那么利用CreateObject函數(shù)建立引用,然后打開這個文件,打開后修正文件文件,如果已經(jīng)打開了文件,那么首先定位到打開的文件,然后在修正。下面看代碼的重點(diǎn)講解:

① If Not RR Then '創(chuàng)建Word對象

Set myWdA = CreateObject("Word.Application")

myWdA.Visible = True '打開指定文檔

Set MyDocument = myWdA.Documen & "\001 在WORD中激活EXCEL.docm")

'獲取當(dāng)前Excel的SHEET2的單元格C2數(shù)據(jù)

mystr = T(2).Cells(2, 3).Value

'將取得得值設(shè)定到Word表格的1行2列中

MyDocument.Tables(1).Cell(2, 3).Range.Text = mystr

MyDocument.Save

Set myWdA = Nothing

Set MyDocument = Nothing

上述代碼是打開文件及修正文件的代碼。

② Set myWdA = GetObject(, "WORD.Application")

For Each doc In myWdA.Documents

UU = UCase)

If doc.FullName = T & "\001 在WORD中激活EXCEL.docm" Then

mystr = T(2).Cells(2, 3).Value

'將取得的值設(shè)定到Word表格的1行2列中

doc.Tables(1).Cell(2, 3).Range.Text = mystr

doc.Save

Set doc = Nothing

Exit For

End If

Next

Set myWdA = Nothing

上述代碼是當(dāng)文件已經(jīng)打開,定位所給出的文件,然后修訂文件的代碼。

③ 上述文件修訂的代碼,我給出的比較簡單,大家在實(shí)際利用的時(shí)候可以發(fā)揮使用。

本節(jié)知識點(diǎn)回向:如何利用CreateObject函數(shù)和GetObject 函數(shù)來判斷一個給定的文件是否打開?當(dāng)已經(jīng)得到文件已經(jīng)打開時(shí)如何定位到這個文件?以上兩個問題就是本節(jié)要講解的主要問題,其中的代碼完全可以用作通用代碼來對待。

備注:本節(jié)代碼參考文件“001 工作表.xlsm”

我20多年的VBA實(shí)踐經(jīng)驗(yàn),全部濃縮在下面的各個教程中,教程學(xué)習(xí)順序:

① 7→1→3→2→6→5或者7→4→3→2→6→5。

② 7→8

各套教程內(nèi)容簡介:

第7套教程(共三冊):《VBA之EXCEL應(yīng)用》:是對VBA基本的講解

第1套教程(共三冊):《VBA代碼解決方案》:是入門后的提高教程

第4套教程(16G):VBA代碼解決方案之視頻(第一套的視頻講解)

第3套教程(共兩冊):《VBA數(shù)組與字典解決方案》:是對數(shù)組和字典的專題講解

第2套教程(共兩冊):《VBA數(shù)據(jù)庫解決方案》:是對數(shù)據(jù)庫的專題講解

第6套教程(共兩冊):《VBA信息獲取與處理》:講解VBA的網(wǎng)絡(luò)及跨程序應(yīng)用

第5套教程(共兩冊):VBA中類的解讀和利用:類及接口技術(shù)的講解

第8套教程(共三冊):VBA之Word應(yīng)用(最新教程):word中VBA的利用

  • 第六套教程:VBA信息獲取與處理,這是一部高級教程,涉及范圍更廣,實(shí)用性更強(qiáng),面向中高級人員。教程共二十個專題,包括:跨應(yīng)用程序信息獲得、隨機(jī)信息的利用、電子郵件的發(fā)送、VBA互聯(lián)網(wǎng)數(shù)據(jù)抓取、VBA延時(shí)操作,剪切板應(yīng)用、Split函數(shù)擴(kuò)展、工作表信息與其他應(yīng)用交互,F(xiàn)SO對象的利用、工作表及文件夾信息的獲取、圖形信息的獲取以及定制工作表信息函數(shù)等等內(nèi)容。程序文件通過32位和64位兩種OFFICE系統(tǒng)測試。

1.《【word表格數(shù)據(jù)來源怎么插入】在EXCEL中操作WORD應(yīng)用程序》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識,僅代表作者本人觀點(diǎn),與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。

2.《【word表格數(shù)據(jù)來源怎么插入】在EXCEL中操作WORD應(yīng)用程序》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進(jìn)行證實(shí),對其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。

3.文章轉(zhuǎn)載時(shí)請保留本站內(nèi)容來源地址,http://f99ss.com/keji/2519150.html