2016-01-22 103 views
0

我試圖簡化每週工作的Excel表格。Excel VBA - 搜索範圍 - 如果單元格包含文本,然後複製單元格 - 粘貼2,1

我試圖創建一個VBA宏,將做到以下幾點:

  1. 搜索包含文本的任何單元格的列C,如果空白忽略它
  2. 如果在細胞中找到的文字,複製該單元格,粘貼內容偏移量(2,1)

任何幫助任何人都可以給我,我將不勝感激。我搜索了其他宏,並試圖修改它們以供我使用而無濟於事。

**Example Before Macro** 
    A  B  C  D  E 
1     Hi 
2     Test 
3 
4     Done 
5 
6 

**Example After Macro Has Been Run** 
    A  B  C  D  E 
1     Hi 
2     Test 
3       Hi 
4     Done Test 
5 
6       Done 

目前代碼:

Sub CopyC() 
    Dim SrchRng As Range, cel As Range 
    Set SrchRng = Range("C1:C10") 

    For Each cel In SrchRng 
    If InStr(1, cel.Value) > 0 Then 
     cel.Offset(2, 1).Value = "-" 
    End If 
    Next cel 
End Sub 
+0

聽起來像th是一個簡單的For循環和If語句。你目前有什麼代碼/你嘗試過嗎? – TMH8885

+0

「code'Sub CopyC() 昏暗SrchRng作爲範圍,CEL作爲範圍 集SrchRng =範圍( 「C1:C10」) 對於每個CEL在SrchRng 如果InStr函數(1,cel.Value)> 0然後 cel.Offset(2,1).value的= 「 - 」 結束如果 接下來CEL 結束Sub'code」 –

+0

更改您的if語句來'如果cel.Value <> 「」 Then' –

回答

1

您是關閉:

Sub CopyC() 
Dim SrchRng As Range, cel As Range 
Set SrchRng = Range("C1:C10") 
For Each cel In SrchRng 
    If cel.Value <> "" Then 
     cel.Offset(2, 1).Value = cel.Value 
    End If 
Next cel 
End Sub 

enter image description here

我在列d增加1-6,以表明它被忽略的空白

+1

非常感謝! –

相關問題