potrzebujesz makra, które może zmieniać kolejność arkuszy w arkuszu kalkulacyjnym Excel [zamknięte]

-3

Mam kilka skoroszytów, które mają arkusze, które nie są w porządku (np. arkusze A, C, B)

Potrzebuję makra, które może zmienić kolejność arkuszy, tak aby były w porządku (jak arkusz A, B, C).

czy ktoś może mi pomóc?

DanM
źródło
3
Pokaż, co już próbowałeś, ponieważ ta witryna służy pomocą, a nie niestandardowymi skryptami.
Jonno
nie jestem pewien, od czego zacząć ten projekt. wiem, jak utworzyć arkusze, ale kod, którego używam, nie wie, jak zmienić kolejność kart. w zasadzie tworzę arkusz po „ostatniej” karcie, ale jest to naprawione. więc kiedy tworzę swoje arkusze, kolejność jest odwrotna. każda pomoc jest doceniana.
DanM
1
Junno nie tylko ma rację, musisz także lepiej wyjaśnić, co masz na myśli mówiąc „ arkusze, które nie są w porządku ”. Czy masz na myśli dane w kolumnach oznaczone „A, C, B”, czy są to rzeczywiste nazwy na kartach arkuszy? Pomocne może być zaoferowanie zrzutu ekranu. Proszę spojrzeć na Jak zapytać, aby dowiedzieć się, jak poprawić swoje pytanie.
CharlieRB
Możesz użyć narzędzia do nagrywania makr, aby ręcznie zrobić to, co chcesz, i wyświetlić dane wyjściowe, aby przynajmniej ustawić właściwą ścieżkę.
Jonno
nie, nie mówię o kolumnach. są to nazwy samych arkuszy. więc mam procedurę, która tworzy strony (o nazwach A, B, C), ale kiedy uruchamiam tę procedurę, strony wychodzą jako C, B, A, więc muszę je zmienić ich kolejność, aby pojawiły się jako A, B, C . strony idą w górę do ZZZZZ, więc po Z, potem idzie AA, BB itp., ponieważ jestem nowy w VBA, nie jestem pewien, od czego zacząć. doceniam każdą pomoc.
DanM

Odpowiedzi:

1

To krótkie makro to zrobi

Tak dla Rosnąco

Nie dla malejąco

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

Wessel
źródło
dzięki wessel, mogę pracować z tym kodem. dokładnie to, czego szukałem. i dzięki za link do Microsoft, nie pomyślałem o sprawdzeniu ich witryny pod kątem poprawki.
DanM