2014-09-11 1 views
0

값이 6이 될 때까지 B 열까지 아래로 스크롤하는 매크로가 필요합니다. 전달되는 첫 번째 값에서 A 행의 값을 가져옵니다 이 값을 X로 참조 할 것입니다.) 그런 다음 동일한 책의 다른 시트로 이동하여 C 열이 X보다 크거나 같아지면 3 행을 삽입하십시오. 저는 VBA를 매우 처음 사용하고 있으며 무엇을하고 있는지 전혀 모릅니다. 그러나 나는 시간이 흐르고 있으며 도움을받을 수 있습니다. 이게 도움이 될지 모르겠지만 그것을 설명 할 수있는 수퍼 의사 코드를 썼습니다. 그건, How to find text in a column and saving the row number where it is first found - Excel VBA 하지만 :VBA - 다른 행을 기반으로 같은 행에 값을 가져 오기

Survey.cell 
    dls = Where(column("J") > 6.0 get.row) 
    kop = Where(column("B") meets dls) 

Survey.cell 
    inc = Where(column("C") >85 get.row) 
    lnd = Where(column("B") meets inc) 

Journal.cell 
    Where cloumn("M") >= kip insert.row & inerst.row & insert.row 
    Where column("M") >= lnd insert.row & insert.row & insert.row 

나는이에 찾을 수있는 가장 가까운 것은 여기 (나는 X를 필요로하지만, 나는 또한 두 번째 시트에 다른 자리에 3 행을 삽입하기 위해 Y 필요합니까뿐만 아니라) 내가 필요한 것만은 아니야. 나는 어떤 도움을 주셔서 감사합니다. 좋은 하루 되세요!

+0

나는 이것을 올바르게 이해하지 못합니다. 먼저 B 열을 스크롤하여 (행 1에서 끝까지?) 값이 6 이상인 것을 확인한 다음 값을 왼쪽 (열 A)에 복사하고이 값을 다른 시트의 열 C + 3 = F? 첫 번째 행에서 C 열의 값이 X 값보다 크거나 같으면 (sheet1 열 A에서)? – ssn

+0

죄송합니다. 최대한 최선을 다해 설명하려고 노력했습니다. 하지만 당신이 말한 것은 가깝습니다. A 열의 값을 찾은 후 다른 값으로 이동하고 다른 워크 시트로 이동 한 다음 두 번째 워크 시트의 열 b 값을 초과 한 행을 빈 행으로 3 개 삽입합니다 (X). – Ryan

답변

2

귀하의 질문에 대한 답변을 얻으려면이 조치를 취해야합니다. 시트에 숫자가 아닌 값이 있으면이 작업은 실패합니다.

Sub DoIt() 
    Dim i As Long 
    Dim x As Double 
    Dim Worksheet1 As Worksheet 
    Dim Worksheet2 As Worksheet 
    Dim ColumnA As Long 
    Dim ColumnB As Long 
    Dim ColumnC As Long 

    Set Worksheet1 = ActiveWorkbook.Worksheets("Sheet1") ' Change name of sheet if necessary 
    Set Worksheet2 = ActiveWorkbook.Worksheets("Sheet2") ' Change name of sheet if necessary 
    ColumnA = 1 ' Change if you want other columns, 1 = A-column, 2 = B etc 
    ColumnB = 2 
    ColumnC = 3 


    For i = 1 To Worksheet1.UsedRange.Rows.Count 
     If Worksheet1.Cells(i, ColumnB).Value > 6 Then 
      x = Worksheet1.Cells(i, ColumnA).Value 
      Exit For 
     End If 
    Next 

    If x = 0 Then MsgBox "No value greater then 6 found in colum b in sheet 1" 

    For i = 1 To Worksheet2.UsedRange.Rows.Count 
     If Worksheet2.Cells(i, ColumnC).Value >= x Then 
      Worksheet2.Rows(i + 1).Insert 
      Worksheet2.Rows(i + 1).Insert 
      Worksheet2.Rows(i + 1).Insert 
      Exit Sub 
     End If 
    Next 

    MsgBox "No value greater then " & x & " found in column C in sheet 2" 
End Sub 
+0

매력 Roemer처럼 일했습니다. 많이 sooo 감사합니다 !!!! – Ryan

+0

대단히 환영합니다. 나는이 질문에 답을 표시해 주면 고맙겠습니다. 그래서 질문은 다소 "닫혀 있습니다". – Roemer

+0

죄송합니다. 실제로 처음으로 커뮤니티와 상호 작용합니다. – Ryan

관련 문제