Ho scritto una macro, che ogni volta che apro il file excel, legge in ogni riga della colonna A il codice di borsa dell'azienda (AAPL per Apple, FB per Facebook ecc..) e nella corrispondente riga della colonna D inserisce il valore di capitalizzazione attuale.
Al termine lo script mette in ordine le aziende secondo il valore di capitalizzazione contenuto nella colonna D.
Il problema dello script che ho fatto è che ogni volta che viene eseguito inserisce una riga vuota tra la riga 1 che contiene l'intestazione delle colonne e la riga 2. Se c'è qualcuno con un po' di conoscenze di macro di excel vorrei che mi correggesse lo script risolvendo questo problema.
codice:Sub Auto_Open() Dim QuerySheet As Worksheet Dim DataSheet As Worksheet Dim qurl As String Dim i As Integer Dim j As Integer Dim k As Integer Application.ScreenUpdating = False Application.DisplayAlerts = False Application.Calculation = xlCalculationManual Set DataSheet = ActiveSheet Columns("A:I").Sort key1:=Range("A1"), _ order1:=xlAscending, Header:=xlYes i = 2 qurl = "http://download.finance.yahoo.com/d/quotes.csv?f=j1&s=" + Cells(i, "A") While Cells(i, 1) <> "" i = i + 1 qurl = qurl + "+" + Cells(i, "A") Wend Range(Cells(2, "D"), Cells(i, "D")).ClearContents QueryQuote: With ActiveSheet.QueryTables.Add(Connection:="URL;" & qurl, Destination:=DataSheet.Range("D2")) .BackgroundQuery = True .TablesOnlyFromHTML = False .Refresh BackgroundQuery:=False .SaveData = True End With Columns("A:I").AutoFit Columns("D").Replace _ What:="B", Replacement:="", _ SearchOrder:=xlByColumns, MatchCase:=True Columns("A:I").Sort key1:=Range("D1"), _ order1:=xlDescending, Header:=xlYes End Sub

Rispondi quotando