【发布时间】:2021-12-08 03:57:19
【问题描述】:
我一直在思考我目前面临的一个问题。
I have a file that looks like this
我怎样才能(使用 VBA)使列 (B) 填充第一个值 (P),直到它达到下一个值 (R),然后继续填充它 (R),直到它达到下一个值,依此类推,直到 (C) 列中的值结束? (如自动填充)
(B) 列中的值可以是 (P) 或 (R),但每次都不相同。以及行数。
Should look like this (blank rows can be deleted)
我已经尝试了一些方法来让它发挥作用。 首先,我编写了这个代码:
Dim nb As Workbook
nb.Sheets(2).Select
Range("C2").Select
i = 2
Do Until IsEmpty(Range("C" & i))
If InStr(1, Range("C" & i), "") Then
nb.Sheets(2).Range("B" & i) = nb.Sheets(2).Range("B2")
End If
i = i + 1
Loop
正如预期的那样,它只填充了列的第一部分:
然后我尝试在代码中添加更多内容:
nb.Sheets(2).Select
Range("C2").Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
i = ActiveCell
Dim inD As String
ActiveCell.Offset(0, -1).Select
inD = ActiveCell
ActiveCell.Offset(0, 1).Select
Do Until IsEmpty(Range("C" & i))
If InStr(1, Range("C" & i), "") Then
nb.Sheets(2).Range("B" & i) = inD
End If
i = i + 1
Loop
但也正如预期的那样,这不起作用。看来您无法使用 ActiveCell 将单元格位置分配给 i。现在我收到“运行时错误 1004:对象的方法范围 - '全局'失败”
我也尝试了使用录音的自动填充,但也没有用。
非常感谢您在此问题上的帮助!
【问题讨论】: