2016-07-24 57 views
0

我很新VB MacroExcel。我在excel有很多關於問題和他們的問題的數據,不幸的是它的格式很差。我正在組織問題和答案。複製並插入一個範圍如果單元格包含關鍵字

我正在嘗試Copy a Range如果N列的單元格i包含關鍵字Question。如果第N列的單元格包含關鍵字"Question",那麼我需要從cellcopy a Rangecolumn NColumn Y的第九個cell。所以,我的複製範圍是Range(i+1, N : i+9, Y)。一旦它被複制,那麼我需要在eighth cell之後插入那個RangeColumn A,它有關鍵字"Question"。所以,我插入RangeRange(i+9, A : i+17, A)

我試過下面的代碼,但它不起作用。所以,我非常感謝這方面的幫助。以下是我的代碼:

Sub OrganizingQuestion() 
Dim iRow As Integer 
Dim que As String 
Dim rng As Range 
Dim rng2 As Range 
For iRow = 1 To Range("N" & "5000").End(xlUp).Row Step 1 
    If Cells(iRow, 14) = "Question" Then 
    Set rng = Range("N" & iRow + 1 & ":Y" & iRow + 9) 
    rng.Copy 
    End If 

    If Cells(iRow, 1) = "Question" Then 
     Set rng2 = Range("A" & iRow + 9 & ":A" & iRow + 18) 
     rng2.EntireRow.Insert Shift:=xlDown, CopyOrigin:=rng 
    End If 
Next iRow 
End Sub 

回答

1

CopyOrigin需要一個XlInsertFormatOrigin枚舉值。我從不使用它。

enter image description here

Sub OrganizingQuestion() 
    Dim iRow As Integer 

    For iRow = 1 To Range("N" & Rows.Count).End(xlUp).Row Step 1 

     If Cells(iRow, 14) = "Question" And Cells(iRow, 1) = "Question" Then 
      Range("N" & iRow + 1 & ":Y" & iRow + 9).Copy 
      Range("A" & iRow + 9 & ":A" & iRow + 18).Insert Shift:=xlDown 
     End If 

    Next iRow 
End Sub 
+0

感謝。你的代碼中有哪些rng? – Santosh

+0

我知道它的範圍,但我的意思是它是我們正在複製的第一個?我覺得是這樣的。 – Santosh

+0

對不起,我忘了刪除該行。我剛剛整理了你的代碼。那些是你的範圍。 rng和rng2的變量對我來說似乎很鬆散。這沒有增加代碼的可讀性,所以我刪除了它們。我看到您的代碼唯一的問題是CopyOrigin參數。 – 2016-07-24 10:25:02

相關問題