【发布时间】:2016-04-29 12:03:50
【问题描述】:
我正在尝试简化我每周使用的 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
【问题讨论】:
-
听起来这将是一个简单的 For 循环和 If 语句。您目前拥有/尝试过什么代码?
-
'code'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然后 cel.Offset(2, 1).Value = "-" End If Next cel End Sub'code'
-
将 if 语句更改为
If cel.Value <> "" Then -
和
cel.Offset(2, 1).Value = "-"到cel.Offset(2, 1).Value = cel.value -
@ScottCraner 我把代码改成了那个;但是,它只复制一个空白文本(这是因为我的代码,我不知道如何复制单元格的内容)并且它不会忽略空白单元格。