Visualizzazione dei risultati da 1 a 1 su 1
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    56

    Semplice macro per excel

    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
    Ultima modifica di iJoker; 12-12-2015 a 17:40

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.