저는 VBA (~ 4 일 신규)에 매우 익숙하며 일반적인 방법으로이 문제를 해결하기 위해 이와 같은 리소스에 대한 많은 게시물을 읽고 실험하고는 있지만, 그걸 알아 채지 못했습니다. 좋은 사람들이 제가 잘못하고있는 부분을 지적 해 주길 바랍니다. 비슷한 문제가있는 스레드를 많이 (모두?) 살펴 보았지만 나 자신을위한 해결책을 함께 모을 수는 없었습니다. 이미 다른 곳에서 대답 한 적이 있다면 용서할 수 있기를 바랍니다.값 변경을위한 검색 범위, 찾을 경우 전체 행
상황 :
내가 행 항목 (세포 J까지 합병) 5-713 아래로 열 B를 스프레드 시트를 가지고 각 날짜에 대한 (열은 K-SP) 항목이 하나 하나 채점 또는 0입니다. 나의 목표는 워크 시트 맨 아래에 1에서 0까지 모든 항목을 포함하는 목록을 만드는 것입니다. 시작하려면 모든 행을 복사하기 위해 "목록 생성"단추를 가져 오려고했습니다 그 밑에 0을 넣고 나중에 내가 원하는대로 정확하게 조정할 것이라고 생각했습니다. 여러 가지 시도를했는데 몇 가지 다른 오류가 발생했습니다.
Worksheet Sample 내가 말하는 것에 대한 시각적 정보.
나는 여러 가지 시도를 해봤으며 각각 성공에 한계가 있었으며 매번 다른 오류가 발생했습니다. 나는 "method"범위의 '_Worksheet failed ","object required ","type mismatch ","out of memory "및 기타 몇 가지를 가졌습니다. 나는 약간의 문제를 야기하는 몇 가지 기본적인 문법을 이해하지 못하고있을 것이라고 확신한다.
다음은 '유형 불일치'오류를 표시하는 최신 코드 배치입니다. 나는 또한 가지고 '할 일'이 될 문자열을 시도했지만 그건 그냥 내가 약속 있다고 생각하는 또 다른 시도가 다음이었다
Sub CommandButton1_Click()
Application.ScreenUpdating = False
Dim y As Integer, z As Integer, todo As Range
Set todo = ThisWorkbook.ActiveSheet.Range(Cells(5, 2), Cells(713, 510))
y = 5
z = 714
With todo
Do
If todo.Rows(y).Value = 0 Then
todo.Copy Range(Cells(z, 2))
y = y + 1
z = z + 1
End If
Loop Until y = 708
End With
Application.ScreenUpdating = True
End Sub
'개체에 필요한'밖으로 촬영하지만 '메모리 부족'나를 수 있습니다.
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Dim y As Integer, z As Integer
y = 5
z = 714
Do
If Range("By:SPy").Value = 0 Then
Range("By:SPy").Copy Range("Bz")
y = y + 1
z = z + 1
End If
Loop Until y = 708
Application.ScreenUpdating = True
End Sub
그냥 반복하는, 내가 게시 한 코드 시도하는 방법이 하나의 공의로 전환하는 검색 할 기준을 정의가 있다면 어떤 행은, 그러나, 스프레드 시트의 바닥에 공의를 포함 얻기 위해 간단했다 , 그것은 놀라 울 것이다! 또한 실제 데이터에서 0을 구별하는 방법과 항목 이름에서 0을 구별하는 방법을 잘 모르겠습니다 (예를 들어 '항목 10'을 목록에 넣는 것은 좋지 않습니다. 0 이후).
이 첫 번째 단계를 알아내는 데 도움이되거나 0으로 바뀌는 1을 스캔하는 방법에 대한 도움이 있으면 감사하겠습니다. 나는 단순한 무언가를 놓치고 있고, 너희들이 내 무지를 용서할 수 있기를 바란다.
감사합니다.
을 발견 후 제로 을 찾습니다 – user3598756
열 AK의 항목 6의 예 것 변경된 항목 아니면 오해입니까? – burger
글쎄, 당신은 그것을 알아야합니다! 그러나 워크 시트 샘플 – user3598756