如何添加到Excel中的当前单元格选择VBA
问题描述:
所以我有一个循环检查列中的每个单元格,并找到一个特定的日期(目前是前一周的星期一)。我的代码现在确实正确地选择他们,但我希望它保持先前的选择那么到底该规范的所有细胞都选择如何添加到Excel中的当前单元格选择VBA
Public Function LastMonday(pdat As Date) As Date
LastMonday = DateAdd("ww", -1, pdat - (Weekday(pdat, vbMonday) - 1))
End Function
Sub Macro2()
Macro2 Macro
Dim rng As Range
Dim curCellValue As String
Dim mondayStr As String
mondayStr = Format(LastMonday(Date), "dd/mm/yyyy")
Set rng = Range(ActiveSheet.Range("E2"), ActiveSheet.Range("E2").End(xlDown))
For Each Cell In rng
curCellValue = Cell.Value
If curCellValue = mondayStr Then Cell.Select
Next Cell
End Sub
作为奖励,该功能更改为不同的一天上周我是否会简单地将vbMonday更改为vbTuesday等?我承认我不太了解VBA,大部分情况都是从这里开始的。
答
最好的方法是使用Union
方法将所有单元格存储在一个范围内。我也不推荐使用.Select
。您可能想看到THIS
修改代码添加此代码。
Dim MySel As Range
For Each cell In Rng
If cell.Value = mondayStr Then
If MySel Is Nothing Then
Set MySel = cell
Else
Set MySel = Union(MySel, cell)
End If
End If
Next cell
If Not MySel Is Nothing Then
With MySel
'.Select
'~~> Do something
End With
End If
还有一件事......请注意xlDown
应尽可能避免。你可能想看到THIS
工作就像一个魅力,也用你的链接建议的方法取代xlDown。 – 2014-09-11 11:49:26