运行 excel/VBA 中所有列的脚本
Running script on all columns in excel/VBA
所以,我有一个 HTTP PUT 请求,我需要 运行 处理大量数据。 (50,000 多个细胞)
所有这些都包含在两行和大约 25,000 列中。第一行是要 PUT 到的 HTTP URL,第二行是将作为请求的较大字符串的一部分的数据。
假设我的 sheet 的前两列如下,其中单元格用逗号分隔
Location1, Sample Data 1
Location2, Sample Data 2
我将向域发送 PUT 请求。com/API/Location1 包含字符串 "data=Sample Data 1",其中 "domain.com/API/" 是常量,"data=" 也是常量。
对 excel 了解不够,我刚刚创建了一个按钮来调用我的代码。我仍在弄清楚如何将单元格数据插入此代码中。
Private Sub CommandButton1_Click()
URL = "https://domain.com/api/Location1"
DATA = "here_is_a_long_string_specifying_the_value_to_modify=Sample Data 1"
Set HTTP = CreateObject("Microsoft.XMLHTTP")
HTTP.Open "PUT", URL, False
HTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
HTTP.send REQUEST
End Sub
最终我希望它做类似 URL = ""(1,x)
然后继续遍历列表,所以 (1,1) 然后是 1,2 和 1,3,等等。
此时我不确定将搜索指向何处
如果我理解正确,这可能会有所帮助:
获取 Excel 中的单元格数据 VBA:
cells(rowindex,columnindex).value
URL = "https://domain.com/api/" & cells(1,1).value
DATA = "yaddayadda=" & cells(2,1).value
为此添加一个 for 循环,您就可以开始了:
For i = 1 To Cells(1, 1).End(xlToRight).Column 'assuming your cells are continously filled
URL = "https://domain.com/api/" & Cells(1, i).Value
DATA = "yaddayadda=" & Cells(2, i).Value
Next i
Cells(1, 1).End(xlToRight).Column
部分查找最后一个填充的单元格的列号,从单元格 A1 开始,向右。
希望这对您有所帮助,我并没有完全误解您的问题。 :)
所以,我的脚本开始工作了
x=0
While x < 25000
x = (x + 1)
URL = "https://domain.com/api/" Sheet1.Cells(x, 1)
DATA = "string_of_data=" Sheet1.Cells(x, 1)
set HTTP = CreateObject("Microsoft.XMLHTTP")
HTTP.Open "PUT", URL, False, "Login", "Password"
HTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
HTTP.send DATA
wend
所以,我有一个 HTTP PUT 请求,我需要 运行 处理大量数据。 (50,000 多个细胞)
所有这些都包含在两行和大约 25,000 列中。第一行是要 PUT 到的 HTTP URL,第二行是将作为请求的较大字符串的一部分的数据。
假设我的 sheet 的前两列如下,其中单元格用逗号分隔
Location1, Sample Data 1
Location2, Sample Data 2
我将向域发送 PUT 请求。com/API/Location1 包含字符串 "data=Sample Data 1",其中 "domain.com/API/" 是常量,"data=" 也是常量。
对 excel 了解不够,我刚刚创建了一个按钮来调用我的代码。我仍在弄清楚如何将单元格数据插入此代码中。
Private Sub CommandButton1_Click()
URL = "https://domain.com/api/Location1"
DATA = "here_is_a_long_string_specifying_the_value_to_modify=Sample Data 1"
Set HTTP = CreateObject("Microsoft.XMLHTTP")
HTTP.Open "PUT", URL, False
HTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
HTTP.send REQUEST
End Sub
最终我希望它做类似 URL = ""(1,x)
然后继续遍历列表,所以 (1,1) 然后是 1,2 和 1,3,等等。
此时我不确定将搜索指向何处
如果我理解正确,这可能会有所帮助:
获取 Excel 中的单元格数据 VBA:
cells(rowindex,columnindex).value
URL = "https://domain.com/api/" & cells(1,1).value
DATA = "yaddayadda=" & cells(2,1).value
为此添加一个 for 循环,您就可以开始了:
For i = 1 To Cells(1, 1).End(xlToRight).Column 'assuming your cells are continously filled
URL = "https://domain.com/api/" & Cells(1, i).Value
DATA = "yaddayadda=" & Cells(2, i).Value
Next i
Cells(1, 1).End(xlToRight).Column
部分查找最后一个填充的单元格的列号,从单元格 A1 开始,向右。
希望这对您有所帮助,我并没有完全误解您的问题。 :)
所以,我的脚本开始工作了
x=0
While x < 25000
x = (x + 1)
URL = "https://domain.com/api/" Sheet1.Cells(x, 1)
DATA = "string_of_data=" Sheet1.Cells(x, 1)
set HTTP = CreateObject("Microsoft.XMLHTTP")
HTTP.Open "PUT", URL, False, "Login", "Password"
HTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
HTTP.send DATA
wend