我试图创建一个VBA宏,它将在D列中查找特定值并将文本输入其他3个。我相信我已经接近得到了我需要的答案,但我不确定我想要让它发挥作用。
这是我到目前为止所拥有的:
Dim rng As range
Dim i As Long
'Set the range in column D you want to loop through
**Set rng = range("D3:D")**
For Each cell In rng
'Test cell for CR
If cell.Value = "CR" Then
'write to adjacent cell
cell.Offset(0, 3).Value = "CREDIT"
cell.Offset(0, 5).Value = "CREDIT"
cell.Offset(0, 6).Value = "CREDIT"
End If
Next
**Set rng = range("G3:G")**
For Each cell In rng
'test for empty cell
If cell.Value = "" Then
'write to adjacent cell
cell.Offset(0, 0).Value = "FREIGHT"
cell.Offset(0, 2).Value = "FREIGHT"
cell.Offset(0, 3).Value = "FREIGHT"
End If
Next
End Sub
带有**的行是我遇到错误的地方。
非常感谢任何帮助!
答案 0 :(得分:3)
试试这个:
Set rng = Range("D3", Cells(Rows.Count, "D").End(xlUp))
答案 1 :(得分:0)
这是一种基于给定单元格及其End(xlDown)
声明范围的方法:
Option Explicit
Sub TestMe()
Dim myRange As Range
Dim firstCell As Range
Dim lastCell As Range
Set firstCell = Worksheets(1).Range("A12")
Set lastCell = firstCell.End(xlDown)
Set myRange = Range(firstCell, lastCell)
End Sub
这个想法是给定工作表上的两个单元格可以定义一个范围。因此,通过定义它们,也可以定义范围。
这两个单元格是firstCell
和lastCell
。有趣的是,您需要仅声明worksheet
的父对象(firstCell
),然后lastCell
和myRange
使用相同的对象。