首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >VBA Excel -按昨天日期定义范围

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

Stack Overflow用户
提问于 2017-04-13 07:22:51
回答 2查看 9K关注 0票数 2

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

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

然后,有了这些信息,我想要设置搜索发现的范围-这将被转换为HTML并作为电子邮件发送。

希望我的请求是有意义的。

EN

回答 2

Stack Overflow用户

发布于 2017-04-13 08:08:56

我会帮你拿到90%。您想要的代码应该如下所示。根据你的问题,我不完全理解你想要设置什么变量。

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2017-04-13 12:45:54

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

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43381169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档