Excel VBA-搜索范围-如果单元格包含文本,则复制单元格-粘贴偏移量2,1

Excel VBA-搜索范围-如果单元格包含文本,则复制单元格-粘贴偏移量2,1,excel,vba,Excel,Vba,我试图简化每周使用的excel工作表 我正在尝试创建一个VBA宏,该宏将执行以下操作: 在C列中搜索包含文本的任何单元格,如果为空,则忽略它 如果在单元格中找到文本,复制该单元格,粘贴内容偏移量(2,1) 如果有人能给我任何帮助,我将不胜感激。我搜索了其他宏,并试图修改它们以供我使用,但没有结果 **Example Before Macro** A B C D E 1 Hi 2

我试图简化每周使用的excel工作表

我正在尝试创建一个VBA宏,该宏将执行以下操作:

  • 在C列中搜索包含文本的任何单元格,如果为空,则忽略它
  • 如果在单元格中找到文本,复制该单元格,粘贴内容偏移量(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
    
    你很接近:

    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
    
    Sub-CopyC()
    尺寸SrchRng As范围,cel As范围
    设置SrchRng=范围(“C1:C10”)
    对于SrchRng中的每个cel
    如果单元格值为“”,则
    单元偏移量(2,1)。值=单元值
    如果结束
    下一个细胞
    端接头
    

    我在D列中添加了1-6以表明它忽略了空格

    您已接近:

    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
    
    Sub-CopyC()
    尺寸SrchRng As范围,cel As范围
    设置SrchRng=范围(“C1:C10”)
    对于SrchRng中的每个cel
    如果单元格值为“”,则
    单元偏移量(2,1)。值=单元值
    如果结束
    下一个细胞
    端接头
    


    我在D列中添加了1-6以表明它忽略了空格

    听起来这将是一个简单的For循环和If语句。您目前有/尝试过什么代码?'code'Sub CopyC()Dim SrchRng As Range,cel As Range Set SrchRng=Range(“C1:C10”)如果InStr(1,cel.Value)>0那么cel.Offset(2,1)。Value=“-”End If Next cel End Sub'code'将If语句更改为
    If cel.Value”“,然后
    cel.Offset(2,1).Value=“-”
    cel.Offset(2,1).Value=cel.Value
    @ScottCraner我将代码更改为该值;但是,它只复制空白文本(因为我的代码,我不知道如何复制单元格内容)它不会忽略空白单元格。听起来这将是一个简单的For循环和If语句。您目前有/尝试过什么代码?'code'Sub CopyC()Dim SrchRng As Range,cel As Range Set SrchRng=Range(“C1:C10”)如果InStr(1,cel.Value)>0,那么cel.Offset(2,1.Value=“-”End If Next cel End Sub'code'将If语句更改为
    If cel.Value“”,然后将
    cel.Offset(2,1.Value=“-”
    更改为
    cel.Offset(2,1.Value=cel.Value
    @ScottCraner我将代码更改为该语句;但是,它只复制一个空白文本(因为我的代码,我不知道如何复制单元格内容)它不会忽略空白单元格。斯科特你是个天才!我爱你:斯科特你是个天才!我爱你:D