过去两天,我一直在阅读教程,以开始我在VBA中的旅程,并且需要一些帮助来解决当前的问题。我目前收到一个我无法访问的来自ACCESS数据库的报告,需要正确填充数据,以便我可以开始使用vlookups等,并(希望)创建一些自动化的时间表填充和计算。报告的格式不会改变,但是报告中的数据量会根据每天上班和下班的用户数量而改变。我已附上一张图像,显示了我的需求;我曾尝试自己做一些VBA,但除了困惑之外,我只是想适应任何地方而已。
答案 0 :(得分:0)
将此代码复制到模块中并在工作表处于活动状态时运行它,或更改代码以完全引用存在以下工作表的工作表:set WS=...
代码背后的逻辑很简单,如果将date列填充为空,而date列之前为空白,则将值从上到下复制:
Sub FillBelowRows()
Dim i As Integer
Dim lRow As Integer
Dim cell As Range
Dim WS As Worksheet
Set WS = ActiveSheet
lRow = WS.UsedRange.Rows.Count
For i = 3 To lRow
If WS.Range("I" & i) <> "" And WS.Range("H" & i) = "" Then
WS.Range("E" & i & ":H" & i).Value = WS.Range("E" & i - 1 & ":H" & i - 1).Value
End If
Next i
End Sub
答案 1 :(得分:0)
我设法解决了这一问题,方法是录制一个宏,然后通过一个按钮将其应用于多张纸上。记录的宏功能如下:
Select columns E:H
F5
Special
Select blank
= and then up one cell using the arrow key
ctrl + enter
阅读您发布的代码有助于我以全新的方式查看问题,非常感谢您的帮助。您可能会从我的解决方法中看出,我还是VBA的新手,但我热衷于学习。再次感谢!