VBA Excel - 按昨天的日期定义范围

时间:2017-04-12 23:22:51

标签: excel vba excel-vba

在VBA中,我尝试将范围设置为工作簿打开前一天(例如,工作簿在2017年4月13日开放,我希望范围为2017年4月12日)

我希望VBA在前一天搜索C列,当它找到它时,它会选择与它相邻的单元格(A:我最好)。

然后,根据这些信息,我希望设置搜索范围的范围 - 然后将其转换为HTML并作为电子邮件发送。

希望我要求的是有道理的。

2 个答案:

答案 0 :(得分:1)

我会在那里得到90%。你想要的代码应该是这样的。根据您的问题,我不完全了解您想要设置的变量。

Dim d As Date
 d = DateAdd("d", -1, Date)

Dim x As Range
Dim a As String

'Range("e1").Value = d

Columns("C:C").Select
a = Cells.Find(What:=d, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
    :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
    False, SearchFormat:=False).Address

'Range(a).Offset(0, 31).Range("A1:B1").Select
'adjust this
' x = Range(a).Offset(0, 31).Range("A1:B1").Address

答案 1 :(得分:0)

尝试下面的代码(代码注释中的解释):

Option Explicit

Sub FindYesterdaysDateRow()

Dim Rng     As Range
Dim YesterD As Date

YesterD = DateAdd("d", -1, Date) ' <-- get yesterday's date

' the following line will work if you have column C formatted as "Date"
Set Rng = Range("C:C").Find(What:=YesterD, LookIn:=xlValues, LookAt:=xlWhole)

If Not Rng Is Nothing Then '<-- Find was successful
    Range("A" & Rng.Row & ":I" & Rng.Row).Select
Else ' <-- Find was unable to find yesterday's date
    MsgBox "Yesterday's date not found in Column C"
End If


End Sub