TOP

Excel (NBU_RATE) में NBU विनिमय दरों का आयात

उन लोगों के लिए एक तैयार फ़ंक्शन जिन्हें अक्सर Excel में NBU विनिमय दरों का उपयोग करना पड़ता है। मुद्रा मूल्यों को उसके कोड और दिनांक के अनुसार स्वचालित रूप से सम्मिलित करने में सहायता करता है एनबीयू वेबसाइट . यूक्रेन के बैंक कर्मचारियों को समर्पित।

मेनू खोलें Service - Macros - Visual Basic Editor, नया मॉड्यूल डालें (मेनू Insert - Module) और इस फ़ंक्शन के टेक्स्ट को वहां कॉपी करें:

Function NBU_RATE(sCurr$, iiDate As Date)
 'moonexcel.com.ua
 Dim sURI As String
 Dim oHttp As Object
 Dim htmlcode As String
 Dim C As Range
 Dim Q As Long
 Dim iP As Long, z As Long
 Dim S As String, S1 As String, iOnlyTable As String
 Dim b As Object
 Dim massive(30, 5)
 Dim iDatas As Date
 
 sURI = "http://bank.gov.ua/control/uk/curmetal/currency/search?formType=searchFormDate&time_step=daily&date=" & iiDate & "&execute"
 On Error Resume Next
 Set oHttp = CreateObject("MSXML2.XMLHTTP")
 If Err.Number <> 0 Then
 Set oHttp = CreateObject("MSXML.XMLHTTPRequest")
 End If
 If oHttp Is Nothing Then Exit Function
 On Error GoTo ConnectionError
 oHttp.Open "GET", sURI, False
 On Error GoTo ConnectionError
 oHttp.Send
 htmlcode = oHttp.responseText
 iP = InStr(1, htmlcode, "України<"&"br/>встановлює")
 htmlcode = Mid(htmlcode, iP, 10000)
 iP = InStr(1, htmlcode, "<"&"td class=") + 6 + 11 '">
 iDatas = Mid(htmlcode, iP, 10)
 iOnlyTable = Mid(htmlcode, InStr(100, htmlcode, "<"&"table cellpadding="), InStr(1000, htmlcode, "<"&"/table>") - _
 InStr(100, htmlcode, "<"&"table cellpadding=") + 10)'">
 Set Doc = CreateObject("HTMLFile")
 Doc.Write iOnlyTable
 Set b = Doc.all.tags("TABLE")
 
 For Each uTableElement In b
 iRows = uTableElement.Rows.Length
 iCells = uTableElement.Cells.Length
 j = 0
 For k = 1 To iRows
    For l = 1 To 5
        j = j + 1
        massive(k, l) = uTableElement.Cells(j - 1).innerHTML
        If j = uTableElement.Cells.Length Then GoTo 1
    Next l
Next k
1:
 Next uTableElement
 
 For k = 2 To iRows
    For l = 1 To 5
        If massive(k, l) = sCurr Then
            NBU_RATE = Replace(massive(k, 5), ".", ",")
            NBU_RATE = NBU_RATE / massive(k, 3)
        End If
     Next l
Next k

Calculate
NextForLoop:
Set oHttp = Nothing
Exit Function
ConnectionError:
End Function

Visual Basic Editor को बंद करें और Excel पर वापस लौटें।

अब, Function wizard में परिभाषित श्रेणी User में आप हमारा फ़ंक्शन NBU_RATE पा सकते हैं और इसका उपयोग कर सकते हैं। इस फ़ंक्शन का सिंटैक्स इस प्रकार है:

=NBU_RATE ( मुद्रा कोड ; तारीख )

हमारे पास निम्नलिखित परिणाम होंगे: