|
* 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.
1. 엑셀 버전(95,97,2000,2002):
2. 윈도우즈의 버전(win95,win98,winME,winNT,win2000,winXP):
3. CPU (486,PentiumI/II/III/IV...):
4. RAM (32,64,128,256,512MB,1G...):
* 아래줄에 질문을 작성하세요 >>
전혀 문제를 해결하고 있지 못해서 다시 정확히 여쭤 볼께요.
range의 주소를 string형태로 받아서 선택된 모든 행을 delete하기 위한 프로시져인데
range속성에서 계속 에러가 발생합니다.
6420번 질문에 대한 답을 강용림님께서 시트가 달라서 그렇다고 하시는데, 그 말씀도 잘 이해가 안됩니다.
다음은 코드입니다.
Application.ScreenUpdating = False
Set shtDbAll = ThisWorkbook.Sheets("db all") >>>본래 데이터베이스를 담고 있는 쉬트
With shtDbAll
.Activate
.Unprotect
.Range("A:A,C:C,P:P,R:R,W:W,X:X,Y:Y,Z:Z,AA:AA,AB:AB,AC:AC").Select >>>필요한 칼럼만을 선택해서
End With
Selection.Copy >>> 카피해서
shtDbAll.Range("a1").Select
Sheets("front").Activate >>>원래 워크북의 front 페이지 activate
Set wkNew = Workbooks.Add >>> 새로운 워크북
Set shtNew = wkNew.Sheets(1)
With shtNew
.Paste >>> 붙여 넣기
Set rngNumReg = .Range(.Cells(2, 1), .Cells(2, 1).End(xlDown)) >>첫번째 칼럼에 등록 번호 데이터를 가지고 있는데, 모든 등록번호 선택
Set rngGrad = rngNumReg.Offset(0, 10) >>이것은 수료식 날짜를 나타내는 칼럼임
For Each mygrad In rngGrad
If mygrad <> "" Then >>수료식을 한 사람들(날짜기입되어 있음)을 선별하기 위한 것임
ReDim Preserve strAddress(intStr) As String >>> 동적배열에 담아서
strAddress(intStr) = mygrad.EntireRow.Address(False)
intStr = intStr + 1
End If
Next mygrad
For intStr = 0 To UBound(strAddress) - 1
strAddr = strAddr & strAddress(intStr) & ","
' MsgBox strAddr
Next intStr
strAddr = strAddr & strAddress(UBound(strAddress))
.Range(strAddr).Select >>straddr "31:31,33:33...... 199:199" 와 같은 결과를 가지는데 range 속성에서 에러가 발생합니다.
selection.delete
|
|