Open Han991212 opened 1 year ago
Sub ReadSheetsFromExcelFile()
Dim filePath As String
Dim targetWorkbook As Workbook
Dim sourceWorkbook As Workbook
Dim targetSheet1 As Worksheet
Dim targetSheet2 As Worksheet
Dim sourceSheet1 As Worksheet
Dim sourceSheet2 As Worksheet
' 设置文件路径
filePath = "C:\Path\To\Your\File.xlsx" ' 将文件路径替换为实际的路径
' 打开目标工作簿
Set targetWorkbook = ThisWorkbook ' 将目标工作簿替换为你的目标工作簿
' 打开源工作簿
Set sourceWorkbook = Workbooks.Open(filePath)
' 获取源工作簿中的第一个和第二个工作表
Set sourceSheet1 = sourceWorkbook.Sheets(1)
Set sourceSheet2 = sourceWorkbook.Sheets(2)
' 获取目标工作簿中的目标工作表
Set targetSheet1 = targetWorkbook.Sheets("HZH") ' 将 "HZH" 替换为你的目标工作表名称
Set targetSheet2 = targetWorkbook.Sheets("ZLJ") ' 将 "ZLJ" 替换为你的目标工作表名称
' 将源工作表的数据复制到目标工作表
sourceSheet1.UsedRange.Copy targetSheet1.Range("A1")
sourceSheet2.UsedRange.Copy targetSheet2.Range("A1")
' 关闭源工作簿,不保存更改
sourceWorkbook.Close SaveChanges:=False
' 清除对象引用
Set sourceSheet1 = Nothing
Set sourceSheet2 = Nothing
Set sourceWorkbook = Nothing
Set targetSheet1 = Nothing
Set targetSheet2 = Nothing
Set targetWorkbook = Nothing
End Sub
Sub DownloadExcelFromWebsite()
' 创建 InternetExplorer 对象
Dim IE As Object
Set IE = CreateObject("InternetExplorer.Application")
' 打开网页
IE.Visible = True
IE.navigate "https://www.example.com" ' 将网址替换为实际的网站链接
' 等待网页加载完成
Do While IE.Busy Or IE.readyState <> 4
DoEvents
Loop
' 查找并填写用户名和密码
Dim userName As Object
Dim password As Object
Set userName = IE.document.getElementById("username") ' 将 "username" 替换为实际的用户名输入框的 ID
Set password = IE.document.getElementById("password") ' 将 "password" 替换为实际的密码输入框的 ID
userName.Value = "your_username" ' 将 "your_username" 替换为实际的用户名
password.Value = "your_password" ' 将 "your_password" 替换为实际的密码
' 提交表单(如果需要)
' IE.document.forms(0).submit
' 等待登录完成和页面加载
Do While IE.Busy Or IE.readyState <> 4
DoEvents
Loop
' 查找并点击下载链接
Dim downloadLink As Object
Set downloadLink = IE.document.getElementById("download-link") ' 将 "download-link" 替换为实际的下载链接的 ID
downloadLink.Click
' 等待下载完成
' 请根据实际情况等待下载完成,例如等待文件保存对话框出现或下载完成的提示信息出现
' 关闭 InternetExplorer
IE.Quit
' 清除对象引用
Set downloadLink = Nothing
Set password = Nothing
Set userName = Nothing
Set IE = Nothing
End Sub
「IE.Busy」と「IE.readyState <> 4」は、Internet Explorer オブジェクトの読み込み状態を確認するためのプロパティです。
「IE.Busy」プロパティは、Internet Explorer がビジー状態(忙しい状態)かどうかを判断するために使用されます。Internet Explorer がページを読み込んでいるか、他の操作を実行中の場合、値は True となります。Internet Explorer がビジーでない場合は、値は False となります。
「IE.readyState」プロパティは、Internet Explorer の準備状態を判断するために使用されます。以下の値が存在します:
0: 初期化されていない - 「navigate」メソッドがまだ呼び出されていません。 1: 読み込み中 - 「navigate」メソッドが呼び出され、読み込みが完了していません。 2: 読み込み完了 - 読み込みは完了しましたが、一部のコンテンツがまだ読み込まれています。 3: インタラクティブ - 読み込みが完了し、ページとの対話が可能です。 4: 完全に読み込まれました - ページが完全に読み込まれ、すべてのコンテンツが使用可能です。 「Do While IE.Busy Or IE.readyState <> 4」は、Internet Explorer の完全な読み込みと対話可能な状態になるまでループするための条件です。
具体的には、このコードは、IE.Busy の値が False(つまり、Internet Explorer がビジーでなくなる)かつ IE.readyState の値が 4(つまり、ページが完全に読み込まれ、対話可能な状態になる)まで、指定したコードブロックを繰り返し実行します。「DoEvents」ステートメントは、システムが他のイベントを処理できるようにするために使用され、プログラムの応答性を保ちます。
このような待機プロセスにより、後続の操作を実行する前に、ページが完全に読み込まれ、対話可能な状態であることが保証されます。