VBA로 특정 열을 삭제하는 방법은?
엑셀용 VBA에서 여러 열을 삭제하려고 합니다.일리노이 통계분석센터에서 마약 검거에 관한 자료를 다운받았습니다http://www.icjia.org/public/sac/index.cfm?metasection=forms&metapage=rawMetadata&k=170
삭제하고 싶은 열은 각각 3개씩 떨어져 있습니다.
예를 들어,
Adams County Illinois Champaign County Illinois 추정치 | % | 오차한계 | 추정한계 | 추정치 | 오차한계 | %
D|E|F|G|H|I|J
모든 열을 삭제하고 싶은 것은 오차한계(Percent Margin of Error)입니다.
매크로는 여기 있습니다.
Sub deleteCol()
Columns("H,J").Delete
End Sub
계속 오류가 발생합니다.
런타임 13: 유형 불일치
좋은 의견이라도 있나?
당신은 단지 전체 컬럼을 제거하라는 컬럼 설명의 후반부를 놓쳤는데, 대부분의 일반적인 범위는 컬럼 레터로 시작하기 때문에, 그것은 숫자를 찾고 있었지만 숫자를 얻지 못했습니다.":"는 전체 열 또는 행을 가져옵니다.
제 생각에 당신이 당신의 레인지에서 찾고 있던 것은 이것이었습니다.
Range("C:C,F:F,I:I,L:L,O:O,R:R").Delete
필요에 맞게 열 문자만 변경하면 됩니다.
제목이 "오차 한계 백분율"인 열을 삭제하고 싶다고 하니 열 이름을 직접 짓지 말고 동적으로 만들어 보겠습니다.
Sub deleteCol()
On Error Resume Next
Dim wbCurrent As Workbook
Dim wsCurrent As Worksheet
Dim nLastCol, i As Integer
Set wbCurrent = ActiveWorkbook
Set wsCurrent = wbCurrent.ActiveSheet
'This next variable will get the column number of the very last column that has data in it, so we can use it in a loop later
nLastCol = wsCurrent.Cells.Find("*", LookIn:=xlValues, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
'This loop will go through each column header and delete the column if the header contains "Percent Margin of Error"
For i = nLastCol To 1 Step -1
If InStr(1, wsCurrent.Cells(1, i).Value, "Percent Margin of Error", vbTextCompare) > 0 Then
wsCurrent.Columns(i).Delete Shift:=xlShiftToLeft
End If
Next i
End Sub
이렇게 하면 열 머리글이 첫 번째 행에 있는 한 데이터를 붙여넣거나 가져올 위치에 대해 걱정할 필요가 없습니다.
편집: 그리고 머리글이 첫번째 줄에 있지 않다면 정말 간단한 변경이 될 것입니다.코드의 이 부분에서:If InStr(1, wsCurrent.Cells(1, i).Value, "Percent Margin of Error", vbTextCompare)
1을 바꾸다Cells(1, i)
네 머리가 어떻게 되든 간에 말입니다.
편집 2: 변경 사항For
완전히 비어 있는 열을 설명하기 위한 코드 섹션입니다.
Excel을 위해 vba의 특정 열을 삭제하는 방법이라는 질문에 답하는 것입니다.아래와 같이 Array를 사용합니다.
sub del_col()
dim myarray as variant
dim i as integer
myarray = Array(10, 9, 8)'Descending to Ascending
For i = LBound(myarray) To UBound(myarray)
ActiveSheet.Columns(myarray(i)).EntireColumn.Delete
Next i
end sub
언급URL : https://stackoverflow.com/questions/26580082/how-to-delete-specific-columns-with-vba
'IT' 카테고리의 다른 글
$.각 () 대 () 루프 - 및 성능 (0) | 2023.09.25 |
---|---|
예외 발생 시 데이터베이스 연결을 닫는 최상의 설계 패턴 (0) | 2023.09.25 |
파이프라인에서 $null을 처리하는 방법 (0) | 2023.09.25 |
콘솔 및 파일 첨부 파일을 사용한 매우 간단한 log4j2 XML 구성 파일 (0) | 2023.09.25 |
관계형 데이터베이스의 사용자 정의 필드 설계 패턴 (0) | 2023.09.25 |