|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2007
Messaggi: 1092
|
[vba excel] aprire file,rinominarlo e lavorare sul nuovo
Salve a tutti. Vi spiego rapidamente la mia esigenza. Vorrei aprire tramite vba un file di excel, assegnare allo stesso un nuovo nome e poi poter lavorare su quest'ultimo modificandolo. Ho scritto questo codice
Codice:
Private Sub invia_Click()
Dim XL As Excel.Application
Set XL = New Excel.Application
Dim WB As Excel.Workbook
Set WB = XL.Workbooks.Open("C:\percorso\file1.xls")
WB.SaveAs Filename:="C:\percorso\file2.xls", FileFormat:=xlXMLSpreadsheet, ReadOnlyRecommended:=False, CreateBackup:=False
Set xlSheet = WB.Sheets(1)
xlSheet.range("a10").Value = "testo di prova"
XL.Visible = True
'WB.Close False
End Sub
Altra domanda. Ho provato a lanciare la routine con il file1.xls già aperto, pensando che mi restituisse qualche errore a causa di questo e invece no. Quindi non è necessario verificare se il file sia già aperto ed eventualmente chiuderlo prima di crearne una copia? Ultima modifica di john_revelator : 07-06-2009 alle 19:50. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Sì, il codice è corretto.
Per controllare l'esistenza di un file ci sono diversi metodi. Il più semplice forse è l'uso di Dir() : Codice:
If Dir(percorso & nomeFile) <> "" Then
MsgBox "esiste"
Else
MsgBox "non esiste"
End If
Altro metodo, farsi una Function che controlla la lunghezza di un File : Codice:
Private Function FileEsiste(nomeCompletoFile As String) As Boolean
Dim r As Long
On Error GoTo E
r = FileLen(nomeCompletoFile)
FileEsiste = True
Exit Function
E:
FileEsiste = False
End Function
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jul 2007
Messaggi: 1092
|
Ciao Marco. Gentilissimo come al solito. Stasera mi metto a studiare sul codice che mi hai scritto. Un'ultima domanda anche se non strettamente attinente alla discussione. A volte vedo in alcune funzioni, quali dir e ucase, il simbolo del dollaro alla fine. Che differenza c'è quindi tra Dir e Dir$? Ho provato a cercare su google ma forse uso chiavi di ricerca sbagliate e non trovo nulla. Grazie ancora.
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Esattamente non so dire a quale versione di VB appartengano, perchè a livello di VB-non-.Net al massimo ricordo qualcosa di VB5, più indietro non vado ( a parte QuickBasic ). La $ potrebbe essere retaggio di vetuste versioni di BASIC, QuickBASIC, GWBasic ecc..., e si è trascinata fino a VBA / VB6, che infatti ne consentono l'uso. Io personalmente non uso MAI definire alcunchè usando la $ finale. Se ad esempio vai nel visualizzatore oggetti di VBA-Excel, e cerchi "ucase", ottieni 2 risultati, dalla classe VBA.Strings : UCase e UCase$, e la guida in linea porta sempre alla UCase. |
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jul 2007
Messaggi: 1092
|
Perfetto. Quindi ne posso tranquillamente fare a meno.
Ti ringrazio per l'ennesima volta. Buona serata. |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:53.




















