serve una macro che possa riordinare i fogli in un foglio di calcolo Excel [chiuso]


-3

ho diverse cartelle di lavoro che hanno fogli che non sono in ordine (come i fogli A, C, B)

ho bisogno di una macro che possa riordinare i fogli in modo che siano in ordine (come i fogli A, B, C).

qualcuno può aiutarmi?


3
Ti preghiamo di mostrare ciò che hai già provato, poiché questo sito fornisce assistenza e non script personalizzati.
Jonno,

non sono sicuro da dove cominciare con questo progetto. so come creare i fogli ma il codice che sto usando non sa come riordinare le schede. fondamentalmente sto creando il foglio dopo la "ultima" scheda, ma questo è stato risolto. quindi quando creo i miei fogli, l'ordine è al contrario. ogni aiuto è apprezzato.
DanM,

1
Non solo Junno è corretto, ma dovrai anche spiegarti meglio cosa intendi quando dici " fogli che non sono in ordine ". Intendi i dati nelle colonne etichettati "A, C, B", o questi sono i nomi effettivi nelle schede dei fogli. Potrebbe esserti utile offrire una schermata. Dai un'occhiata a Come chiedere per sapere come migliorare la tua domanda.
CharlieRB,

È possibile utilizzare la funzione di registrazione macro per fare manualmente ciò che si desidera fare e visualizzare l'output per almeno portarti sulla strada giusta.
Jonno,

no, non sto parlando di colonne. questi sono i nomi dei fogli stessi. quindi ho una routine che crea pagine (chiamate A, B, C) ma quando eseguo la routine, le pagine escono come C, B, A, quindi ho bisogno di riordinarle in modo che risultino come A, B, C . le pagine vanno su ZZZZZ, quindi dopo Z, poi su AA, BB, ecc. dato che sono nuovo di VBA, non sono sicuro da dove cominciare. apprezzare qualsiasi aiuto.
DanM,

Risposte:


1

Questa breve macro lo farà

Sì per Ascendente

No per discendente

Sub Sort_Active_Book()
Dim i As Integer
Dim j As Integer
Dim iAnswer As VbMsgBoxResult
'
' Prompt the user as which direction they wish to
' sort the worksheets.
'
   iAnswer = MsgBox("Sort Sheets in Ascending Order?" & Chr(10) _
     & "Clicking No will sort in Descending Order", _
     vbYesNoCancel + vbQuestion + vbDefaultButton1, "Sort Worksheets")
   For i = 1 To Sheets.Count
      For j = 1 To Sheets.Count - 1
'
' If the answer is Yes, then sort in ascending order.
'
         If iAnswer = vbYes Then
            If UCase$(Sheets(j).Name) > UCase$(Sheets(j + 1).Name) Then
               Sheets(j).Move After:=Sheets(j + 1)
            End If
'
' If the answer is No, then sort in descending order.
'
         ElseIf iAnswer = vbNo Then
            If UCase$(Sheets(j).Name) < UCase$(Sheets(j + 1).Name) Then
               Sheets(j).Move After:=Sheets(j + 1)
            End If
         End If
      Next j
   Next i
End Sub

https://support.microsoft.com/en-us/kb/812386


grazie Wessel, posso lavorare con quel codice. esattamente quello che stavo cercando. e grazie per il link a microsoft, non ho pensato di controllare il loro sito per una correzione.
DanM,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.