【分享成果,順熙正能量】這個世界上最不想接觸的是沒有能力但同時(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