집 > 기사 > 소프트웨어 튜토리얼 > Excel 시트를 시트당 300행으로 분할하는 매크로
공개 서브 mySub()
Dim shS As Worksheet: Set shS = ActiveSheet '소스 데이터 시트, 현재 활성 시트
Dim rS&: rS = 1 ' 소스 데이터 테이블, 이 행에서 데이터 읽기를 시작합니다
Dim rC&: rC = 300 '매번 읽는 행 수
Dim rNew$: rNew = 1 '새 테이블을 만들고 이 행에 데이터를 붙여넣으세요
Dim rZ&: rZ = shS.UsedRange.Row + shS.UsedRange.Rows.Count - 1
Dim shNew를 워크시트로, nm$, n%, r&
r = rS
r 동안 하세요
n = n + 1
ShNew = Worksheets.Add(after:=Sheets(Worksheets.Count)) 설정
nm = "테이블" & rC & "__" & n
ShNm(shNew, nm)에 전화
shS.Rows(r).Resize(rC).shNew.Rows(rNew) 복사
r = rC * n + rS
루프
MsgBox "알겠습니다"
끝 서브
Public Sub ShNm(sh는 워크시트로, nm은 변형으로)
오류 발생 시 다음 재개
100:
sh.이름 = nm
Err.Number인 경우 0인 경우
Err.Clear
nm = 애플리케이션.입력박스( _
"" " & nm & " "가 이미 존재합니다! " & Chr(10) & Chr(10) & "새 테이블 이름을 입력하세요: ", _
"새 테이블 이름을 입력하세요", nm & "_new", _
유형:=2)
If nm = False Then MsgBox "입력이 잘못되었습니다. 프로그램을 종료하세요!": End
고투100
끝나면
끝 서브
하위 매크로6()
'
' 매크로6 매크로
'
'
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
세미콜론:=False, 쉼표:=False, 공백:=False, 기타:=True, OtherChar _
:="*", FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
열("A:A").선택
Selection.Replace What:="PL", 교체:="", LookA:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
열("C:D").선택
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
범위("C1").선택
ActiveCell.FormulaR1C1 = "=MIN(RC[-2],)"
범위("C1").선택
ActiveCell.FormulaR1C1 = "=MIN(RC[-2],RC[-1])"
범위("D1").선택
ActiveCell.FormulaR1C1 = "=MAX(RC[-3],RC[-2])"
범위("C1:D1").선택
Selection.AutoFill 대상:=범위("C1:D1000")
범위("C:D").선택
열("A:B").선택
범위("B1").활성화
열("C:D").선택
선택.복사
Selection.PasteSpecial 붙여넣기:=xlPasteValues, 작업:=xlNone, SkipBlanks _
:=거짓, 전치:=거짓
열("A:B").선택
범위("B1").활성화
Application.CutCopyMode = False
선택.삭제 Shift:=xlToLeft
열("A:B").선택
Selection.Replace What:="0", 교체:="", LookA:=xlWhole, _
_
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
끝 서브
참고: 사용할 때 A열을 먼저 선택한 다음 매크로를 실행하세요. 분할할 열은 A열에 있어야 하며 BC열 두 개는 비어 있어야 합니다. 그렇지 않으면 덮어쓰게 됩니다(하하, 시간이 짧습니다. 특히 스마트) 행 수가 1000줄을 초과하지 않습니다. ㅎㅎ 그렇지 않으면 좀 느려지므로 범위는 1000줄로 설정했습니다. 철강구조에도 종사하시나요? 하하 역시
옵션 명시
하위 테스트()
범위에 따른 희미한 rng
Dim arr As Variant
Dim k를 정수로
선택한 각 rng에 대해
rng.Value = 바꾸기(rng.Value, ":", "/")
arr = 분할(rng.Value, "/")
k = U바운드(arr) + 1
rng.Resize(1, k) = arr
삭제 오류
다음 rng
End Sub 코드를 붙여넣는 방법을 알고 계시리라 생각하므로 자세한 내용은 다루지 않겠습니다. 아래 이미지를 눌러 제가 작성한 코드를 실행해 보세요.
1단계
단계-2
3단계
4단계
[개발 도구]-[Visual Basic] 또는 Alt+F11 단축키를 클릭하여 VBE 편집 인터페이스로 들어갑니다.
새 모듈을 삽입하려면 선택
다음 코드를 모듈에 붙여넣으세요:
서브 CFGZB()
Dim myRange를 변형으로
Dim myArray
어두운 제목Range As Range
문자열로 된 희미한 제목
Dim 열Num As Integer
myRange = Application.InputBox(prompt:="제목 행을 선택하세요:", 유형:=8)
myArray = WorksheetFunction.Transpose(myRange)
Set titleRange = Application.InputBox(prompt:="첫 번째 행이어야 하고 셀이어야 하는 분할 헤더를 선택하십시오. 예: "이름"", 유형:=8)
title = titleRange.Value
위 내용은 Excel 시트를 시트당 300행으로 분할하는 매크로의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!