몇 가지 도움을 받아, 모든 데이터를 "텍스트"형식에서 "숫자"형식으로 변환하기 위해 조화롭게 작동하는 두 가지 기능을 조합했습니다. 그 다음에는 각 열을 고정 된 수의 문자로 설정합니다.엑셀 : VBA 매크로의 행/열 생략하기
내가 사용하고있는 두 가지 서브 루틴은 아래에 나열되어 있지만 각 함수의 특정 행/열을 생략하는 방법을 알 수는 없습니다.
psAdd 함수를 실행할 때 범위에서 처음 세 행을 생략하고 FormatFixedNumber 함수에 대해 여러 열을 생략하고 싶습니다. 후자에 대한 문제는 내가 1000+ 칼럼의 데이터와 칼럼이 변환되어야 하는지를 나타내는 1 또는 0을 포함하는 키 헤더 행을 가지고 있다는 것이다.
어떻게이 코드를 수정하여 첫 번째 하위에서 첫 번째 3 개 행을 건너 뛰고 두 번째 열에서 0으로 표시된 여러 개의 열을 건너 뛸 수 있습니까?
Sub psAdd()
Dim x As Range 'Just a blank cell for variable
Dim z As Range 'Selection to work with
Set z = Cells
Set x = Range("A65536").End(xlUp).Offset(1)
If x <> "" Then
Exit Sub
Else
x.Copy
z.PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd
Application.CutCopyMode = False 'Kill copy mode
End If
x.ClearContents 'Back to normal
End Sub
Sub FormatFixedNumber()
Dim i As Long
Application.ScreenUpdating = False
For i = 1 To lastCol 'replace 10 by the index of the last column of your spreadsheet
With Columns(i)
.NumberFormat = String(.Cells(2, 1), "0") 'number length is in second row
End With
Next i
Application.ScreenUpdating = True
End Sub
다음 행 1이라고 가정 같지 0. 않는 경우 각 헤더 셀에 대한 간단한 테스트는 진행 두 번째 코드 od 코드에 대해 정확하게 질문하면 0은 2 행에 있으므로 'If Cells (2, i) <> 0 Then Then'이됩니다. – assylias
또한 첫 번째 코드 조각처럼 처음 몇 개의 머리글 행을 생략하는 두 번째 코드 조각이 필요합니다. – toolshed