[英]VBA - Excel through macros for each row in a column
我正在开发一种工具,它可以让我调用大约 15 个潜艇从一个单元格中获取文本,分析它,然后为它生成一个字母。 现在我没有过多地使用循环,但我想看看我对此的想法是否正确,或者是否有关于如何使它变得更好的建议:
Sub Loop_Process()
Dim myrange as string
myrange = Cells(Rows.Count, 1).End(xlUp).Address
For each i in Range(myrange).Rows
Call Macro 1
Call Macro 2
'etc
Next i
End sub
这会影响整个列表吗? 您能想到的任何主要陷阱? 我需要弄清楚的另一件事是,它使用正在运行宏的单元格的内容作为标题保存 PDF,如果保存 PDF 宏在循环内,我怎么能让它引用单元格。 那有意义吗? 感谢您的帮助
你说你想从你引用的每个单元格中获取文本,并在你的 15 个其他过程中使用它。
正如@BigBen 所说-您需要引用范围的开始和结束单元格。 目前你只是在看最后一个单元格。
此代码将 go 通过范围内的每个单元格并将其传递给宏。 它还演示了有助于简化代码语法的With...End With代码块。
Public Sub Test()
Dim myRange As Range
'Always be specific which workbook and sheet your range is on.
'The overall range and the start/end cells are fully qualified:
'Set myRange = ThisWorkbook.Worksheets("Sheet1").Range( _
' ThisWorkbook.Worksheets("Sheet1").Cells(1, 1), _
' ThisWorkbook.Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp))
'The above row shortened using the With...End With block.
With ThisWorkbook.Worksheets("Sheet1")
Set myRange = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))
End With
Dim myCell As Range
For Each myCell In myRange.Cells
Macro1 myCell 'Pass the cell reference to the Macro1 procedure.
Next myCell
End Sub
Public Sub Macro1(CellRef As Range)
With CellRef
MsgBox "Row: " & .Row & vbCr & _
"Col:" & Split(.Address, "$")(1) & vbCr & _
"Val: " & .Value
End With
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.