2016-01-22 201 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

非常感谢! –

相关问题