Heim  >  Artikel  >  Software-Tutorial  >  Makro, das eine Excel-Tabelle in 300 Zeilen pro Blatt aufteilt

Makro, das eine Excel-Tabelle in 300 Zeilen pro Blatt aufteilt

WBOY
WBOYnach vorne
2024-01-16 18:36:16922Durchsuche

Ein Makro, das eine Excel-Tabelle alle 300 Zeilen in ein Blatt unterteilt!

Public Sub mySub()

Dim shS As Worksheet: Set shS = ActiveSheet 'Quelldatenblatt, aktuell aktives Blatt

Dim rS&: rS = 1 'Quelldatentabelle, beginnen Sie mit dem Lesen der Daten aus dieser Zeile

Dim rC&: rC = 300 'Die Anzahl der jedes Mal gelesenen Zeilen

Dim rNew$: rNew = 1 'Erstellen Sie eine neue Tabelle und fügen Sie die Daten in diese Zeile ein

Dim rZ&: rZ = shS.UsedRange.Row + shS.UsedRange.Rows.Count - 1

Dim shNew As Worksheet, nm$, n%, r&

r = rS

Do While r

n = n + 1

Set shNew = Worksheets.Add(after:=Sheets(Worksheets.Count))

nm = „table“ & rC & „__“ & n

Ruf ShNm(shNew, nm)

shS.Rows(r).Resize(rC).Copy shNew.Rows(rNew)

r = rC * n + rS

Schleife

MsgBox „ok“

End Sub

Public Sub ShNm(sh als Arbeitsblatt, nm als Variante)

Bei Fehler Fortsetzung fortsetzen

100:

sh.Name = nm

Wenn Fehlernummer 0, dann

Err.Clear

nm = Application.InputBox( _

"" " & nm & " " existiert bereits! " & Chr(10) & Chr(10) & "Bitte geben Sie einen neuen Tabellennamen ein: ", _

"Bitte geben Sie den neuen Tabellennamen ein", nm & "_new", _

Typ:=2)

Wenn nm = False Then MsgBox „Die Eingabe ist falsch, beenden Sie das Programm!“: Ende

Gehe zu 100

Ende wenn

End Sub

So verwenden Sie Makrobefehle, um eine Sequenz in EXCEL aufzuteilen, z. B. PL10 120 in aufzuteilen

Sub Macro6()

'

' Makro6 Makro

'

'

Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _

TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _

Semikolon:=Falsch, Komma:=Falsch, Leerzeichen:=Falsch, Andere:=Wahr, OtherChar _

:="*", FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True

Spalten("A:A").Auswählen

Selection.Replace What:="PL", Replacement:="", LookAt:=xlPart, _

SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _

ReplaceFormat:=False

Spalten("C:D").Auswählen

Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove

Bereich("C1").Auswählen

ActiveCell.FormulaR1C1 = "=MIN(RC[-2],)"

Bereich("C1").Auswählen

ActiveCell.FormulaR1C1 = "=MIN(RC[-2],RC[-1])"

Bereich("D1").Auswählen

ActiveCell.FormulaR1C1 = "=MAX(RC[-3],RC[-2])"

Bereich("C1:D1").Auswählen

Selection.AutoFill Destination:=Range("C1:D1000")

Bereich("C:D").Auswählen

Spalten("A:B").Auswählen

Bereich("B1").Aktivieren

Spalten("C:D").Auswählen

Auswahl.Kopieren

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=Falsch, Transponieren:=Falsch

Spalten("A:B").Auswählen

Bereich("B1").Aktivieren

Application.CutCopyMode = False

Selection.Delete Shift:=xlToLeft

Spalten("A:B").Auswählen

Selection.Replace What:="0", Replacement:="", LookAt:=xlWhole, _

_

SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _

ReplaceFormat:=False

End Sub

Hinweis: Wenn Sie es verwenden, wählen Sie zuerst Spalte A aus und führen Sie dann das Makro aus. Die zu teilende Spalte muss sich in Spalte A befinden und die beiden Spalten BC sind leer, sonst wird sie überschrieben (haha, die Zeit ist knapp, nicht). besonders intelligent) und die Anzahl der Zeilen 1000 Zeilen nicht überschreitet. Haha, sonst wird es etwas langsam, daher ist der Bereich auf 1000 Zeilen eingestellt. Beschäftigen Sie sich auch mit Stahlkonstruktionen? Haha, auch

So verwenden Sie Makros in EXCEL, um die automatischen Symbole mit A und diese in der Tabelle in den hinteren Spalten stapelweise aufzuteilen

Option explizit

Untertest()

Dim rng As Range

Dim arr As Variant

Dim k As Integer

Für jeden Ring in der Auswahl

rng.Value = Ersetzen(rng.Value, ":", "/")

arr = Split(rng.Value, "/")

k = UBound(arr) + 1

rng.Resize(1, k) = arr

Arr löschen

Nächstes Rng

Sub beenden Ich denke, Sie wissen, wie man den Code einfügt, deshalb werde ich nicht auf Details eingehen. Klicken Sie einfach auf das Bild unten, um den Code auszuführen, den ich für Sie geschrieben habe:

Schritt-1

Makro, das eine Excel-Tabelle in 300 Zeilen pro Blatt aufteilt

Schritt-2

Makro, das eine Excel-Tabelle in 300 Zeilen pro Blatt aufteilt

Schritt-3

Makro, das eine Excel-Tabelle in 300 Zeilen pro Blatt aufteilt

Schritt-4

Makro, das eine Excel-Tabelle in 300 Zeilen pro Blatt aufteilt

So teilen Sie eine Excel-Tabelle schnell in mehrere Excel-Tabellen auf und behalten dabei die Originalformeln bei

Klicken Sie auf [Entwicklungstools]-[Visual Basic] oder die Tastenkombination Alt+F11, um die VBE-Bearbeitungsoberfläche aufzurufen.

Wählen Sie, ob Sie ein neues Modul einfügen möchten

Fügen Sie den folgenden Code in das Modul ein:

Sub CFGZB()

Dim myRange As Variant

Dim myArray

Dim titleRange As Range

Titel als String dimmen

Dim ColumnNum As Integer

myRange = Application.InputBox(prompt:="Bitte wählen Sie die Titelzeile aus:", Typ:=8)

myArray = WorksheetFunction.Transpose(myRange)

Set titleRange = Application.InputBox(prompt:="Bitte wählen Sie den geteilten Header aus, der die erste Zeile und eine Zelle sein muss, z. B.: „Name", Typ:=8)

title = titleRange.Value

Das obige ist der detaillierte Inhalt vonMakro, das eine Excel-Tabelle in 300 Zeilen pro Blatt aufteilt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:docexcel.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen