Excel宏| 1列-查找包含文本的单元格,并复制/粘贴到以数字开头的单元格上
我是非常新的,自学了Excel中的VBA宏。我发现这个网站很有帮助,但这一点让我感到困惑 我正试图找出最好的方法来 从一列的顶部开始。 查找第一个不以“08”开头的单元格 复制该单元格并粘贴,直到有另一个单元格不是以“08”开头。 此时,复制新单元格并继续向下粘贴以重复该图案 下面是一个“之前/之后”,这样你就可以了解我想做什么。谢谢你的建议/帮助 之前:Excel宏| 1列-查找包含文本的单元格,并复制/粘贴到以数字开头的单元格上,excel,vba,Excel,Vba,我是非常新的,自学了Excel中的VBA宏。我发现这个网站很有帮助,但这一点让我感到困惑 我正试图找出最好的方法来 从一列的顶部开始。 查找第一个不以“08”开头的单元格 复制该单元格并粘贴,直到有另一个单元格不是以“08”开头。 此时,复制新单元格并继续向下粘贴以重复该图案 下面是一个“之前/之后”,这样你就可以了解我想做什么。谢谢你的建议/帮助 之前: HEADER1 08/01/2014 08/02/2014 08/04/2014 08/05/2014 08/06/2014 HE
HEADER1
08/01/2014
08/02/2014
08/04/2014
08/05/2014
08/06/2014
HEADER2
08/01/2014
08/02/2014
08/04/2014
08/05/2014
08/06/2014
08/07/2014
08/08/2014
08/09/2014
HEADER3
08/11/2014
08/13/2014
HEADER4
08/25/2014
08/26/2014
08/27/2014
After:
HEADER1
HEADER1
HEADER1
HEADER1
HEADER1
HEADER1
HEADER2
HEADER2
HEADER2
HEADER2
HEADER2
HEADER2
HEADER2
HEADER2
HEADER2
HEADER3
HEADER3
HEADER3
HEADER4
HEADER4
HEADER4
HEADER4
代码:
将其复制到模块中并运行。确保更新了
startCell
的范围 哇,谢谢你的快速回复。唯一的问题似乎是日期是自定义单元格格式,而不是文本字符串。是否要更改此代码中的格式?只需在第一行最后两个括号之间添加.Text
,并使用str=
如下所示:`str=Application.WorksheetFunction.Trim(单元格(i,startCell.Column).Text)'
Sub FillDwn()
Dim r As Range
Dim startCell As Range
Dim i As Long
Dim str As String
Set startCell = Range("A1") 'Change to correct starting cell
Set r = startCell
For i = startCell.Row To startCell.Row + startCell.CurrentRegion.Rows.Count - 1
str = Application.WorksheetFunction.Trim(Cells(i, startCell.Column))
str = Left(str, 2)
If str = "08" Then Cells(i, startCell.Column) = r.Value Else Set r = Cells(i, startCell.Column)
Next i
End Sub