Q: 打開一個(gè)工作簿時(shí)需要更新對(duì)另一工作簿的引用數(shù)據(jù),而另一個(gè)工作簿有密碼,有什么辦法可以自動(dòng)完成更新,不需要手動(dòng)輸入密碼? A: 可以在workbook_open事件中加入帶密碼打開文件的命令,并完成數(shù)據(jù)更新工作,附示例文件。
代碼如下:Private Sub Workbook_Open()
Application.ScreenUpdating = False
Dim str As String
Dim WB
m = 3
For n = 2 To 5
str = ThisWorkbook.Path & "" & n & ".xls"
Set WB = Workbooks.Open(str, , True, , "123") '關(guān)鍵語句,打開帶密碼工作簿
Worksheets("sheet1").Cells(m, 1) = WB.Worksheets("sheet1").Cells.Find("姓名").Offset(1, 0) '因相應(yīng)工作簿中內(nèi)容格式不統(tǒng)一,采用查找的方式定位數(shù)據(jù)
Worksheets("sheet1").Cells(m, 2) = WB.Worksheets("sheet1").Cells.Find("年齡").Offset(1, 0)
Worksheets("sheet1").Cells(m, 3) = WB.Worksheets("sheet1").Cells.Find("性別").Offset(1, 0) (好像源數(shù)據(jù)表只有一行數(shù)據(jù))
m = m + 1
WB.Close savechanges:=False
Set WB = Nothing
Next n
ThisWorkbook.Activate
Application.ScreenUpdating = True
MsgBox "數(shù)據(jù)更新完畢"
End Sub
復(fù)制代碼 附: workbooks.open 用法幫助
打開一個(gè)工作簿。 語法 表達(dá)式.Open(FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad) 表達(dá)式 一個(gè)代表 Workbooks 對(duì)象的變量。 參數(shù)
名稱 | 必選/可選 | 數(shù)據(jù)類型 | 描述 | CorruptLoad | 可選 | Variant | String 類型。要打開的工作簿的文件名。 | UpdateLinks | 可選 | Variant | 指定更新文件中鏈接的方式。如果省略此參數(shù),則提示用戶指定鏈接的更新方式。有關(guān)此參數(shù)值的詳細(xì)信息,請(qǐng)參閱“備注”部分。如果 Microsoft Excel 正在打開 WKS、WK1 或 WK3 格式的文件并且 UpdateLinks 參數(shù)為 2,則 Microsoft Excel 根據(jù)與該文件關(guān)聯(lián)的圖形生成圖表。如果此參數(shù)為 0,則不創(chuàng)建任何圖表。 | ReadOnly | 可選 | Variant | 如果為 True,則以只讀模式打開工作簿。 | Format | 可選 | Variant | 如果 Microsoft Excel 正在打開文本文件,則由此參數(shù)指定分隔符。如果省略此參數(shù),則使用當(dāng)前的分隔符。有關(guān)此參數(shù)值的詳細(xì)信息,請(qǐng)參閱“備注”部分。 | Password | 可選 | Variant | 一個(gè)字符串,包含打開受保護(hù)工作簿所需的密碼。如果省略此參數(shù)并且工作簿已設(shè)置密碼,則提示用戶輸入密碼。 | WriteResPassword | 可選 | Variant | 一個(gè)字符串,包含寫入受保護(hù)工作簿所需的密碼。如果省略此參數(shù)并且工作簿已設(shè)置密碼,則提示用戶輸入密碼。 | IgnoreReadOnlyRecommended | 可選 | Variant | 如果為 True,則不讓 Microsoft Excel 顯示只讀的建議消息(如果該工作簿以“建議只讀”選項(xiàng)保存)。 | Origin | 可選 | Variant | 如果該文件為文本文件,則此參數(shù)用于指示該文件來源于何種操作系統(tǒng)(以便正確映射代碼頁和回車/換行符 (CR/LF))??蔀橐韵?XlPlatform 常量之一:xlMacintosh、xlWindows 或 xlMSDOS。如果省略此參數(shù),則使用當(dāng)前操作系統(tǒng)。 | Delimiter | 可選 | Variant | 如果該文件為文本文件并且 Format 參數(shù)為 6,則此參數(shù)是一個(gè)字符串,指定用作分隔符的字符。例如,可使用 Chr(9) 代表制表符,使用“,”代表逗號(hào),使用“;”代表分號(hào),或者使用自定義字符。只使用字符串的第一個(gè)字符。 | Editable | 可選 | Variant | 如果文件為 Microsoft Excel 4.0 加載宏,則此參數(shù)為 True 時(shí)可打開該加載宏以使其在窗口中可見。如果此參數(shù)為 False 或被省略,則以隱藏方式打開加載宏,并且無法設(shè)為可見。本選項(xiàng)不能應(yīng)用于由 Microsoft Excel 5.0 或更高版本的 Microsoft Excel 創(chuàng)建的加載宏。如果文件是 Excel 模板,則參數(shù)值為 True 時(shí),會(huì)打開指定模板進(jìn)行編輯。參數(shù)值為 False 時(shí),可根據(jù)指定模板打開新的工作簿。默認(rèn)值為 False。 | Notify | 可選 | Variant | 當(dāng)文件不能以可讀寫模式打開時(shí),如果此參數(shù)為 True,則可將該文件添加到文件通知列表。Microsoft Excel 將以只讀模式打開該文件并輪詢文件通知列表,并在文件可用時(shí)向用戶發(fā)出通知。如果此參數(shù)為 False 或被省略,則不請(qǐng)求任何通知,并且不能打開任何不可用的文件。 | Converter | 可選 | Variant | 打開文件時(shí)試用的第一個(gè)文件轉(zhuǎn)換器的索引。首先試用的是指定的文件轉(zhuǎn)換器;如果該轉(zhuǎn)換器不能識(shí)別此文件,則試用所有其他轉(zhuǎn)換器。轉(zhuǎn)換器索引由 FileConverters 屬性返回的轉(zhuǎn)換器行號(hào)組成。 | AddToMru | 可選 | Variant | 如果為 True,則將該工作簿添加到最近使用的文件列表中。默認(rèn)值為 False。 | Local | 可選 | Variant | 如果為 True,則以 Microsoft Excel(包括控制面板設(shè)置)的語言保存文件。如果為 False(默認(rèn)值),則以 Visual Basic for Applications (VBA) (Visual Basic for Applications (VBA):Microsoft Visual Basic 的宏語言版本,用于編寫基于 Microsoft Windows 的應(yīng)用程序,內(nèi)置于多個(gè) Microsoft 程序中。) 的語言保存文件,其中 Visual Basic for Applications (VBA) 通常為美國(guó)英語版本,除非從中運(yùn)行 Workbooks.Open 的 VBA 項(xiàng)目是舊的已國(guó)際化的 XL5/95 VBA 項(xiàng)目。 | CorruptLoad | 可選 | Variant | 可為以下常量之一:xlNormalLoad、xlRepairFile 和 xlExtractData。如果未指定任何值,則默認(rèn)行為通常為普通加載,但如果 Excel 已嘗試打開該文件,則可以是安全加載或數(shù)據(jù)恢復(fù)狀態(tài)。首先嘗試普通加載。如果 Excel 在打開文件時(shí)停止操作,則嘗試安全加載狀態(tài)。如果 Excel 再次停止操作,則嘗試數(shù)據(jù)恢復(fù)狀態(tài)。 |
返回值 一個(gè)代表打開的工作簿的 Workbook 對(duì)象。 說明 默認(rèn)情況下,以編程方式打開文件時(shí)將啟用宏。使用 AutomationSecurity 屬性可設(shè)置以編程方式打開文件時(shí)所用的宏安全模式。 您可在 UpdateLinks 參數(shù)中指定下面的一個(gè)值,以確定文件的分隔字符:
值 | 含義 | 1 | 用戶指定鏈接更新方式 | 2 | 從不在該工作簿打開時(shí)更新鏈接 | 3 | 始終在該工作簿打開時(shí)更新鏈接 |
您可在 Format 參數(shù)中指定下面的一個(gè)值,以確定文件的分隔字符:
值 | 分隔符 | 1 | 標(biāo)簽 | 2 | 逗號(hào) | 3 | 空格 | 4 | 分號(hào) | 5 | 無 | 6 | 自定義字符(請(qǐng)參閱 Delimiter 參數(shù)) |
|