내 친구와 저는 현재 작은 스프레드 시트로 정기적으로 분할해야하는 마스터 스프레드 시트를 가지고 있습니다. 이것은 수동 프로세스 였지만 자동화하고 싶습니다. Excel VBA에서 자동 스프레드 시트 생성
- 새로운 스프레드 시트에 필터 후 현재 표시 스프레드 시트
- 저장 스프레드 시트를
- 수출 데이터를 해당 필터를 적용하고 돌아갑니다 : 나는 나 다음을 행한 이러한 목표를 달성 도움이 될 VBA에서 세 단계 솔루션을 개발 ~ 1 (다른 기준)
불행히도 구현하기가 힘듭니다. 나는이 줄에서 오류 메시지가 코드를 디버깅시
: 나는 스프레드 시트를 생성 할 때마다, 내 문서가 정지, 시작은 여러 가지 계산을 수행 한 다음이 저에게이 오류 메시지를 제공
하나의 Excel 통합 문서가 열려 있으며 하나의 행만 표시됩니다 (헤더 정보가 포함 된 두 번째 행은 Master에서 가져온 것).
정확히 여기서 무슨 일이 벌어지고 있습니까?
이 내 코드는 지금까지 있습니다 :
모두의 마음
' This bit of code get's all the primary contacts in column F, it does
' this by identifying all the unique values in column F (from F3 onwards)
Sub GetPrimaryContacts()
Dim Col As New Collection
Dim itm
Dim i As Long
Dim CellVell As Variant
'Get last row value
LastRow = Cells.SpecialCells(xlCellTypeLastCell).Row
'Loop between all column F to get unique values
For i = 3 To LastRow
CellVal = Sheets("Master").Range("F" & i).Value
On Error Resume Next
Col.Add CellVal, Chr(34) & CellVal & Chr(34)
On Error GoTo 0
Next i
' Once we have the unique values, apply the TOKEN NOT ACTIVATED FILTER
Call TokenNotActivated
For Each itm In Col
ActiveSheet.Range("A2:Z2").Select
Selection.AutoFilter Field:=6, Criteria1:=itm
' This is where the magic happens... creating the individual workbooks
Call TokenNotActivatedProcess
Next
ActiveSheet.AutoFilter.ShowAllData
End Sub
에 대한 처리를 실행하는 "활성화되지 않은 토큰"필터
Sub TokenNotActivated()
'Col M = Yes
'Col U = provisioned
ThisWorkbook.Sheets(2).Activate
ActiveSheet.Range("A2:Z2").Select
Selection.AutoFilter Field:=13, Criteria1:="Yes"
Selection.AutoFilter Field:=21, Criteria1:="provisioned", Operator:=xlFilterValues
End Sub
통합 문서 저장
Function TokenNotActivatedProcess()
Dim r As Range, n As Long, itm, FirstRow As Long
n = Cells(Rows.Count, 1).End(xlUp).Row
Set r = Range("A1:A" & n).Cells.SpecialCells(xlCellTypeVisible)
FirstRow = ActiveSheet.Range("F2").End(xlDown).Row
itm = ActiveSheet.Range("F" & FirstRow).Value
If r.Count - 2 > 0 Then Debug.Print itm & " - " & r.Count - 2
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.SaveAs Filename:="C:\Working\Testing\TokenNotActivated - " & itm + ".xls", FileFormat:=52, CreateBackup:=False
End Function
오류 메시지의 명령이 명확하지 않습니까? ** 범위 내의 단일 셀을 선택하고 명령을 다시 시도하십시오. ** 'A2 : 22'는 "범위 내의 단일 셀"이 아닙니다. 오류 메시지의 단어는 종종 의미가 있습니다. :-) –
@KenWhite - 해당 범위를 선택하고 싶습니다. 가능하지 않습니까? 현재 두 번째 행만 새로운 통합 문서에 저장되고 나면 오류 메시지가 나타납니다. 더 이상 통합 문서가 저장되지 않습니다. – methuselah
@methuselah : 오류가 표시되면 'itm'값을 추가하고 목록을 필터링하려고합니다. ** TokenNotActivated ** 호출 후 * 중단 점 * (F9)을 사용하여 코드를 중단하고 루프에서 필터가 작동하는 행이 있는지 확인한 다음 F8을 사용하여 한 줄씩 디버깅 해보십시오 . –