首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Excel DateAdd函数

使用Excel DateAdd函数
EN

Stack Overflow用户
提问于 2017-12-27 09:05:05
回答 3查看 820关注 0票数 0

我想使用excel DateAdd函数向包含波斯/hijri日历日期的单元格中添加一些天。因此,我创建了一个按钮并为其分配了一个宏,如下所示:

代码语言:javascript
复制
Sub mydateaddfunction()
    Dim FirstDate As Date
    Dim Number As Integer
      FirstDate = Sheets(3).Range("e13").Value
      Number = Sheets(3).Range("b13").Value
      Sheets(3).Range("e14").Value = DateAdd("d", Number, FirstDate)
End Sub

但不幸的是它抛出了一个错误

应用程序定义或对象定义错误

来自这一行的错误:

代码语言:javascript
复制
Sheets(3).Range("e14").Value = DateAdd("d", Number, FirstDate)

e13单元格包含日期,b13包含要添加到e13单元格的天数。因此,如果e13单元是这样的:

1396/10/17

b13包含一个像3这样的数字,我希望e14是:

1396/10/20

我做错什么了?

EN

回答 3

Stack Overflow用户

发布于 2017-12-27 09:34:41

如果使用Excel 2016,请将代码更改为

代码语言:javascript
复制
Sub mydateaddfunction()
    Dim FirstDate As Date
    Dim Number As Integer

    Dim rg As Range
    Set rg = Union(Sheets(1).Range("E13"), Sheets(1).Range("E14"))
    rg.NumberFormat = "[$-fa-IR,16]dd/mm/yyyy;@"


      FirstDate = Sheets(1).Range("e13").Value
      Number = Sheets(1).Range("b13").Value
      Sheets(1).Range("e14").Value = DateAdd("d", Number, FirstDate)
End Sub
票数 1
EN

Stack Overflow用户

发布于 2017-12-27 09:33:28

默认情况下,VBA使用。因此,我假设您需要将您的Hijri日期转换为Gregorian,并在添加日期之后,将Gregorian转换回Hijri日期。

请试试这个..。

代码语言:javascript
复制
Sub mydateaddfunction()
    Dim FirstDate As Date
    Dim Number As Integer
    Dim gDate As Date
    FirstDate = HijriToGreg(Sheets(3).Range("e13").Value)
    Number = Sheets(3).Range("b13").Value
    gDate = DateAdd("d", Number, FirstDate)
    Sheets(3).Range("e14").Value = GregToHijri(gDate)
End Sub

Function GregToHijri(dtGegDate As Date) As String
    'Converts Gregorian date to a Hijri date
    VBA.Calendar = vbCalHijri
    GregToHijri = dtGegDate
    VBA.Calendar = vbCalGreg
End Function

Function HijriToGreg(dtHijDate As String) As Date
    'Converts Hijri date to a Gregorian date
    VBA.Calendar = vbCalHijri
    HijriToGreg = dtHijDate
    VBA.Calendar = vbCalGreg
End Function
票数 0
EN

Stack Overflow用户

发布于 2020-11-09 01:06:29

对于那些寻找简单解决方案的人,他们可以使用Excel现有的函数"Workday“向数据中添加x个天数。

工作日(start_date,日,假日)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47989246

复制
相关文章

相似问题

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