在 Excel 中重复宏,直到到达空白单元格

Posted

技术标签:

【中文标题】在 Excel 中重复宏,直到到达空白单元格【英文标题】:Repeating a Macro in Excel untill it reaches a blank cell 【发布时间】:2017-09-03 17:02:52 【问题描述】:

我对 Excel 中的 VBA 非常陌生,我已经记录并修改了一个获取值的宏,然后根据“IF”语句,它使用答案来计算某个单元格中的值。我需要重复此操作,直到 A 列中有一个空白单元格。

我的数据是

零件编号在前 4 列中报告的实际浪费遵循我需要重复的代码,直到 A 列为空白。

Sub MissingMix()
'
' MissingMix Macro
' Calculates Missing Mix based on scrap
'
' Keyboard Shortcut: Ctrl+q

    Application.Goto Reference:="R1C1"
    Application.Goto Reference:="R3C8"
    ActiveCell.FormulaR1C1 = "=IF(RC[-5]-RC[-6]>0,SUM(RC[-5]-RC[-6])*RC[+1],"""")"
    Application.Goto Reference:="R3C9"
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-8],'QAD Weights'!RC[-8]:R[37]C[-5],4)"
    End Sub

【问题讨论】:

【参考方案1】:

使用这个:

' get active sheet
Dim CurrentSheet As Worksheet
Set CurrentSheet = ActiveWorkbook.ActiveSheet

' defining starting row
Dim Values As Range
Set Values = Rows(5)

For i = 2 To Values.Cells.Count - 1
    If Values.Cells(i).Text <> "" Then

        ' Do Something ...

    End If
Next

您也可以通过If Not IsEmpty(Cells(i).Value) Then ...进行检查

编辑

还有另一种方法可以解决这个问题。

Dim CurrentSheet As Worksheet
Set CurrentSheet = ActiveWorkbook.ActiveSheet

' getting the lastrow by jumping to the last filled row of cell(1,1)
' cell(1,1) means the cell at row=1 and column=1 (column "A")
Dim LastRow As Long
LastRow = CurrentSheet.Cells(1, 1).End(xlDown).Row

MsgBox LastRow

【讨论】:

我不会使用 .End(xlDown) - 如果列仅在单元格 A1 中有一个值,它将返回 1048576 作为最后一行(与选择单元格 A1 并按 Ctrl+Down 相同)。最好改用CurrentSheet.Cells(CurrentSheet.Rows.Count, 1).End(xlUp).Row 是的,我明白这一点。这就是为什么我建议另一个答案。但是使用xlUp 也有问题。如果中间有空白单元格,您将不会注意到它们。如果这是你需要知道的,那么你就不能使用它。 Moher,感谢您在上面的回答,我可以让它工作,是的,它确实显示了工作表中的行数,但我不知道如何让 If 和查找函数重复,所以可能会重复,这可能是一个愚蠢的问题,但就像我说的那样,我对此非常陌生。提前致谢 所以请详细说明您的情况。也许在工作表中提供一些示例数据。向我们展示您想要什么。 废料8/29/17的总和报告实际2436idpav2r 3 4 2448 addpav2r 2 2 2448Repthndg 3 3 2448RepthnR 4 13 2448RepthnR 4 13 2448Repny 4 4 2460RepthnR 14 36 2460Repthnt4 9 2460idpav2R 0 2这是前 3 列中的数据,我的宏计算列 H 中的值,我的问题是重复宏,直到 A 列为空白,因为行数每天都在变化。如果这很简单,我很抱歉,但我是一个新手

以上是关于在 Excel 中重复宏,直到到达空白单元格的主要内容,如果未能解决你的问题,请参考以下文章

PHP Excel 为公式单元格提供空白输出,直到单击启用编辑

Excel:如何使某些单元格保持空白

表格单元格:空白 nowrap 直到满足最大宽度,然后换行

Excel 2016中的条件格式减去空白单元格

求助excel单元格不同自动添加3个空白行

excel如何随机生成不重复整数?