는 아래의 코드는 열 머리글과 셀 값에 따라 여러 행을 제거엑셀 VBA
- 에 수정 될 수 있을까 열 머리글을 바탕으로 전체 행을 삭제하는 매크로 및
- 여러 열이 작업을 수행 행 조합?
예 : 열 "상태"값 "완료" 주기의 모든 시트를 통해 상태와 상태가있는 전체가 모든 행을 삭제 말합니다 어떤 헤더를 찾아?
Sub Delete_Rows_Based_On_Header_and_Value()
'
' Delete_Rows_Based_On_Header_and_Value Macro
'
' Declaration
Dim a as long
Dim w as long
Dim vDELCOLs as variant
Dim vCOLNDX as variant
Dim vDELROWs as variant
Dim vROWNDX as variant
vDELCOLs = array("status","Status Name","Status Processes")
vDELROWs = array("Complete","Completed","Done")
with Activeworkbook
for w=1 to .worksheets.count
with worksheets(w)
' I know this part is to delete columns based on the column name and I am not sure how to modify it to just check column name then delete row based on the value on that column only.
for a=lbound(vdelcols) to ubound(vdelcols)
vcolndx=application.match(vdelcols(a), .rows(1), 0)
if not iserror(vcolndx) then
.columns(vcolndx).entirecolumn.delete
end if
next a
end with
next w
end with
을 반복하는 것보다 효율적이다, 당신은 결정해야합니다 또는 상태 이름 열에 "완료 됨"이 포함되어 있거나 상태 프로세스 열에 "완료"가 포함되어 있거나 상태 열에 "완료"가 포함되어 있고 상태 이름 열에 "완료 됨"이 있고 상태 프로세스 열에 "완료"가 있습니다. – YowE3K
그래서 1 개의 컬럼 이름과 1 개의 셀 값에 대해 이렇게하는 것이 더 쉬울 것입니다 : Status와 Status Name을위한 다른 라인을 완성하고 완료하고 세 번째 라인을 status process로 완료하고 올바르게 했습니까? 그래서 코드와 프로세스를 단순화 할 수 있을까요? –
하나의 값에 대해 ** 약간 더 간단하게 ** 모든 값을 일치시킬 것인지 또는 일치시킬 값을 원하는지 생각하지 않아도됩니다. 그러나 그 값에 대해 하나의 열을 확인하고자한다면 ** ** ** ** 값이 일치하면 행을 삭제하기로 결정했습니다. – YowE3K