Excel 如何在VBA代码中插入单元格引用以连接weburl
注意:我没有任何编码经验 如何在VBA代码中插入单元格引用以连接到web url 假设在“A1”单元中,我将获得连接的Url。如何在VBA编辑器中连接单元格“A1”而不是固定代码 请帮帮我 我再一次告诉你,我没有任何编码经验。 你能告诉我怎么修改吗。 如果你想测试,我会提供完整的代码Excel 如何在VBA代码中插入单元格引用以连接weburl,excel,vba,Excel,Vba,注意:我没有任何编码经验 如何在VBA代码中插入单元格引用以连接到web url 假设在“A1”单元中,我将获得连接的Url。如何在VBA编辑器中连接单元格“A1”而不是固定代码 请帮帮我 我再一次告诉你,我没有任何编码经验。 你能告诉我怎么修改吗。 如果你想测试,我会提供完整的代码 Option Explicit Sub BankNiftyOptionChain() Dim Json As Object Dim webURL As St
Option Explicit
Sub BankNiftyOptionChain()
Dim Json As Object
Dim webURL As String, mainString, subString
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim dtArr() As String
webURL = "https://www.nseindia.com/api/option-chain-indices?symbol=BANKNIFTY"
subString = "Resource not found"
FetchAgain:
With CreateObject("msxml2.xmlhttp")
.Open "GET", webURL, False
'The following two statements are important to remove cached results.
.setRequestHeader "Content-Type", "application/json"
.setRequestHeader "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"
.send
mainString = .responseText
If InStr(mainString, subString) <> 0 Then
' Data has not been fetched properly. Will wait two seconds and try again.
Application.Wait (Now + TimeValue("0:00:2"))
GoTo FetchAgain
Else
' Data has been fetched properly. Proceed to the next step.
Set Json = JsonConverter.ParseJson(mainString)
End If
End With
j = 4
' Formatting Header Values
Sheet1.Activate
Cells.Clear
Range("B1").Value = Json("records")("underlyingValue")
dtArr = Split(Json("records")("timestamp"), " ")
Range("C1").Value = FormatDateTime(dtArr(0), 2)
Range("D1").Value = FormatDateTime(dtArr(1), 4)
Range("A2:f2").MergeCells = True
Range("A2").Value = "CALLS"
Range("g2").Value = Json("records")("expiryDates")(1)
Range("h2:m2").MergeCells = True
Range("H2").Value = "PUTS"
Range("A1").Value = "BANKNIFTY"
Dim headerValues As Variant
' headerValues = VBA.Array("OI", "Change in OI", "IV", "Volume", "Change in Price", "LTP", "Strike Price", "LTP", "Change in Price", "Volume", "IV", "Change in OI", "OI")
headerValues = VBA.Array("OI", "Change in OI", "IV", "Volume", "Change in Price", "LTP", "Strike Price", "LTP", "Change in Price", "Volume", "IV", "Change in OI", "OI")
Range("A3:m3").Value = headerValues
Range("A1:m3").Font.FontStyle = "Bold"
For i = 1 To Json("records")("data").Count
If Json("records")("data")(i)("expiryDate") = Json("records")("expiryDates")(1) Then
If Abs(Json("records")("data")(i)("strikePrice") - Json("records")("underlyingValue")) Then
k = 1
' START OF OI DATA FOR THE CHOSEN EXPIRY DATE
' the following attributes can also be loaded
' strikePrice, expiryDate, underlying, identifier, openInterest, changeinOpenInterest,
' pchangeinOpenInterest, totalTradedVolume, impliedVolatility, lastPrice, change, pChange,
' totalBuyQuantity, totalSellQuantity, bidQty, bidprice, askQty, askPrice, underlyingValue
If IsObject(Json("records")("data")(i)("CE")) Then
Cells(j, k).Value = Json("records")("data")(i)("CE")("openInterest")
Cells(j, k + 1).Value = Json("records")("data")(i)("CE")("changeinOpenInterest")
Cells(j, k + 2).Value = Json("records")("data")(i)("CE")("impliedVolatility")
Cells(j, k + 3).Value = Json("records")("data")(i)("CE")("totalTradedVolume")
Cells(j, k + 4).Value = Json("records")("data")(i)("CE")("change")
Cells(j, k + 5).Value = Json("records")("data")(i)("CE")("lastPrice")
Else
Cells(j, k).Value = ""
Cells(j, k + 1).Value = ""
Cells(j, k + 2).Value = ""
Cells(j, k + 3).Value = ""
Cells(j, k + 4).Value = ""
Cells(j, k + 5).Value = ""
End If
If IsObject(Json("records")("data")(i)("PE")) Then
Cells(j, k + 6).Value = Json("records")("data")(i)("PE")("strikePrice")
Cells(j, k + 7).Value = Json("records")("data")(i)("PE")("lastPrice")
Cells(j, k + 8).Value = Json("records")("data")(i)("PE")("change")
Cells(j, k + 9).Value = Json("records")("data")(i)("PE")("totalTradedVolume")
Cells(j, k + 10).Value = Json("records")("data")(i)("PE")("impliedVolatility")
Cells(j, k + 11).Value = Json("records")("data")(i)("PE")("changeinOpenInterest")
Cells(j, k + 12).Value = Json("records")("data")(i)("PE")("openInterest")
Else
Cells(j, k + 6).Value = ""
Cells(j, k + 7).Value = ""
Cells(j, k + 8).Value = ""
Cells(j, k + 9).Value = ""
Cells(j, k + 10).Value = ""
Cells(j, k + 11).Value = ""
Cells(j, k + 12).Value = ""
End If
' END OF OI DATA FOR THE CHOSEN EXPIRY DATE
j = j + 1
End If
End If
Next i
End Sub
选项显式
子银行NiftyOptionChain()
Dim Json作为对象
将webURL设置为字符串、主字符串、子字符串
作为整数的Dim i
作为整数的Dim j
将k变为整数
Dim dtArr()作为字符串
webURL=”https://www.nseindia.com/api/option-chain-indices?symbol=BANKNIFTY"
subString=“未找到资源”
请再说一遍:
使用CreateObject(“msxml2.xmlhttp”)
.打开“获取”,webURL,False
'以下两条语句对于删除缓存结果很重要。
.setRequestHeader“内容类型”、“应用程序/json”
.setRequestHeader“如果修改自”,“2000年1月1日星期六00:00:00 GMT”
.发送
主字符串=.responseText
如果InStr(主字符串、子字符串)为0,则
'未正确获取数据。将等待两秒钟,然后重试。
Application.Wait(现在+时间值(“0:00:2”))
又来了
其他的
'数据已正确获取。继续下一步。
Set Json=JsonConverter.ParseJson(主字符串)
如果结束
以
j=4
'格式化标题值
表1.激活
牢房,没问题
范围(“B1”).Value=Json(“记录”)(“参考值”)
dtArr=Split(Json(“记录”)(“时间戳”),“”)
范围(“C1”)。值=FormatDateTime(dtArr(0),2)
范围(“D1”)。值=FormatDateTime(dtArr(1),4)
范围(“A2:f2”)。合并单元格=真
范围(“A2”).Value=“调用”
范围(“g2”)。值=Json(“记录”)(“过期日期”)(1)
范围(“h2:m2”)。合并单元格=真
范围(“H2”).Value=“put”
范围(“A1”).Value=“BANKNIFTY”
Dim HeaderValue作为变量
'headerValues=VBA.Array(“OI”、“OI变动”、“IV”、“数量”、“价格变动”、“LTP”、“履约价格”、“LTP”、“价格变动”、“数量”、“IV”、“OI变动”、“OI”)
headerValues=VBA.数组(“OI”、“OI变动”、“IV”、“数量”、“价格变动”、“LTP”、“履约价格”、“LTP”、“价格变动”、“数量”、“IV”、“OI变动”、“OI”)
范围(“A3:m3”)。值=水头值
范围(“A1:m3”).Font.FontStyle=“Bold”
对于i=1到Json(“记录”)(“数据”)。计数
如果Json(“记录”)(“数据”)(i)(“到期日”)=Json(“记录”)(“到期日”)(1)则
如果Abs(Json(“记录”)(“数据”)(i)(“删除价格”)-Json(“记录”)(“参考价值”)),则
k=1
'所选到期日的OI数据开始
'还可以加载以下属性
'删除价格,过期日期,基础,标识符,开放权益,变更权益,
'PChangeInPrinceRest,TotalTradeVolume,默示效用,最新价格,变更,pChange,
'totalBuyQuantity、totalSellQuantity、BidQuantity、bidprice、AskQuantity、askPrice、UnderlineyValue
如果是IsObject(Json(“记录”)(“数据”)(i)(“CE”)),则
单元格(j,k).Value=Json(“记录”)(“数据”)(i)(“CE”)(“openInterest”)
单元格(j,k+1).Value=Json(“记录”)(“数据”)(i)(“CE”)(“变更兴趣”)
单元格(j,k+2).Value=Json(“记录”)(“数据”)(i)(“CE”)(“隐含可用性”)
单元格(j,k+3).Value=Json(“记录”)(“数据”)(i)(“CE”)(“TotalTradeVolume”)
单元格(j,k+4).Value=Json(“记录”)(“数据”)(i)(“变更”)
单元格(j,k+5).Value=Json(“记录”)(“数据”)(i)(“CE”)(“最后价格”)
其他的
单元格(j,k)。Value=“”
单元格(j,k+1)。Value=“”
单元格(j,k+2)。Value=“”
单元格(j,k+3)。Value=“”
单元格(j,k+4)。Value=“”
单元格(j,k+5)。Value=“”
如果结束
如果是IsObject(Json(“记录”)(“数据”)(i)(“PE”)),则
单元格(j,k+6).Value=Json(“记录”)(“数据”)(i)(“PE”)(“删除线价格”)
单元格(j,k+7).Value=Json(“记录”)(“数据”)(i)(“PE”)(“最新价格”)
单元格(j,k+8).Value=Json(“记录”)(“数据”)(i)(“PE”)(“变更”)
单元格(j,k+9).Value=Json(“记录”)(“数据”)(i)(“PE”)(“TotalTradeVolume”)
单元格(j,k+10).Value=Json(“记录”)(“数据”)(i)(“PE”)(“隐含可用性”)
单元格(j,k+11).Value=Json(“记录”)(“数据”)(i)(“PE”)(“变更兴趣”)
单元格(j,k+12).Value=Json(“记录”)(“数据”)(i)(“PE”)(“openInterest”)
其他的
单元格(j,k+6)。Value=“”
单元格(j,k+7)。Value=“”
单元格(j,k+8)。Value=“”
单元格(j,k+9)。Value=“”
单元格(j,k+10)。Value=“”
单元格(j,k+11)。Value=“”
单元格(j,k+12)。Value=“”
如果结束
'所选到期日的OI数据结束
j=j+1
如果结束
如果结束
接下来我
端接头
如果URL位于活动工作表的A1
中,则可以使用此URL
webURL=Range(“A1”).值
如果您想在特定的工作表上参考A1
,例如Sheet1
,您可以使用此选项
webURL=Sheets(“Sheet1”).范围(“A1”).值
您可以将“”放在单元格A1中,然后写入webURL=Cells(1,“A”)。值如果BANKNIFTY是几个符号之一,则需要循环,即“webURL=https://www.nseindia.com/api/option-chain-indices?symbol=“&单元格(i,“A”)。值