Excel:VBA: 如何使脚本动态化?
Excel:VBA: How to make script dynamic?
我有以下脚本:
Sub Test1()
Dim IE As Object
Set IE = GetObject("new:{D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E}")
IE.Visible = True
IE.navigate "https://share.amazon.com/sites/IPV/Lists/IPV%20Appeals%20tracker/NewForm.aspx?Source=https%3A%2F%2Fshare%2Eamazon%2Ecom%2Fsites%2FIPV%2FLists%2FIPV%2520Appeals%2520tracker%2FAllItems%2Easpx&RootFolder="
Do While IE.Busy
Application.Wait DateAdd("s", 1, Now)
Loop
IE.document.getElementById("Title_fa564e0f-0c70-4ab9-b863-0177e6ddd247_$TextField").Value = ThisWorkbook.Sheets("sheet1").Range("a1")
IE.document.getElementById("Seller_x0020_ID_2b32b5fa-ace8-44d5-bba5-5c0e321671ed_$TextField").Value = ThisWorkbook.Sheets("sheet1").Range("b1")
IE.document.getElementById("Seller_bba5-5c0e321671ed_$TextField").Value = ThisWorkbook.Sheets("sheet1").Range("c1")
IE.document.getElementById("Seller_bba5-5c0e321671ed_$TextField").Value = ThisWorkbook.Sheets("sheet1").Range("d1")
IE.document.getElementById("Seller_bba5-5c0e321671ed_$TextField").Value = ThisWorkbook.Sheets("sheet1").Range("e1")
结束子
此脚本假设复制 excel 中以下行范围内的值并自动填充网站表单。
这个问题是我只在第一行应用了它,但我想要一种方法能够 select 将它应用到哪一行。
希望我的解释有道理。
在行号中串联,例如
Dim rowNumber As Long
rowNumber = 2
IE.document.getElementById("Title_fa564e0f-0c70-4ab9-b863-0177e6ddd247_$TextField").Value = ThisWorkbook.Sheets("sheet1").Range("A" & rowNumber)
如果在循环中使用,那么您将在循环变量中连接并使 id 也成为一个变量。
你的其他项目也是同样的原则。
您也可以从单元格中选择行号
IE.document.getElementById("Title_fa564e0f-0c70-4ab9-b863-0177e6ddd247_$TextField").Value = ThisWorkbook.Sheets("sheet1").Range("A" & ActiveSheet.Range("A1").value)
避免使用 ActiveSheet 并使用实际的 sheet 名称。
我有以下脚本:
Sub Test1()
Dim IE As Object
Set IE = GetObject("new:{D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E}")
IE.Visible = True
IE.navigate "https://share.amazon.com/sites/IPV/Lists/IPV%20Appeals%20tracker/NewForm.aspx?Source=https%3A%2F%2Fshare%2Eamazon%2Ecom%2Fsites%2FIPV%2FLists%2FIPV%2520Appeals%2520tracker%2FAllItems%2Easpx&RootFolder="
Do While IE.Busy
Application.Wait DateAdd("s", 1, Now)
Loop
IE.document.getElementById("Title_fa564e0f-0c70-4ab9-b863-0177e6ddd247_$TextField").Value = ThisWorkbook.Sheets("sheet1").Range("a1")
IE.document.getElementById("Seller_x0020_ID_2b32b5fa-ace8-44d5-bba5-5c0e321671ed_$TextField").Value = ThisWorkbook.Sheets("sheet1").Range("b1")
IE.document.getElementById("Seller_bba5-5c0e321671ed_$TextField").Value = ThisWorkbook.Sheets("sheet1").Range("c1")
IE.document.getElementById("Seller_bba5-5c0e321671ed_$TextField").Value = ThisWorkbook.Sheets("sheet1").Range("d1")
IE.document.getElementById("Seller_bba5-5c0e321671ed_$TextField").Value = ThisWorkbook.Sheets("sheet1").Range("e1")
结束子
此脚本假设复制 excel 中以下行范围内的值并自动填充网站表单。 这个问题是我只在第一行应用了它,但我想要一种方法能够 select 将它应用到哪一行。
希望我的解释有道理。
在行号中串联,例如
Dim rowNumber As Long
rowNumber = 2
IE.document.getElementById("Title_fa564e0f-0c70-4ab9-b863-0177e6ddd247_$TextField").Value = ThisWorkbook.Sheets("sheet1").Range("A" & rowNumber)
如果在循环中使用,那么您将在循环变量中连接并使 id 也成为一个变量。
你的其他项目也是同样的原则。
您也可以从单元格中选择行号
IE.document.getElementById("Title_fa564e0f-0c70-4ab9-b863-0177e6ddd247_$TextField").Value = ThisWorkbook.Sheets("sheet1").Range("A" & ActiveSheet.Range("A1").value)
避免使用 ActiveSheet 并使用实际的 sheet 名称。