首页 > 解决方案 > 加一月至今

问题描述

我有一个电子表格,我正在尝试在其中创建一个表格并将其发送给它。那部分工作正常。我唯一遇到的关于日期的问题。我在单元格 B1(2020 年 10 月 4 日)中有一个日期。我必须在该日期上加一个月。我正在使用 DateAdd 函数。当我执行 VBA 时,我得到一个错误'对象不支持此行上的此属性或方法objTbl.Cell(T, 3).Value = DateAdd("m", 1, Range(" B1").值)

我的代码如下: -

Sub CreateTableInWord()
Dim objWord As Object
Dim objDoc As Object
Dim objTbl As Object
Dim objRow As Object
Dim objCol As Object
Dim lngCols As Long
Dim lngRows As Long
Dim I As Long

    lngCols = 6
    lngRows = 62

    Set objWord = CreateObject("Word.Application")

    objWord.Visible = True

    Set objDoc = objWord.Documents.Add(DocumentType:=0)

    Set objTbl = objDoc.Tables.Add(Range:=objDoc.Paragraphs(1).Range, NumRows:=lngRows, NumColumns:=lngCols)

    Set objRow = objTbl.Rows(1)


   objTbl.Cell(1, 1).Range.Text = "Instal No"
   objTbl.Cell(1, 1).Range.Bold = True
   objTbl.Cell(1, 2).Range.Text = "Amt(Rs)"
   objTbl.Cell(1, 2).Range.Bold = True
   objTbl.Cell(1, 3).Range.Text = "Due Date"
   objTbl.Cell(2, 3) = Range("B1").Value
   objTbl.Cell(1, 3).Range.Bold = True
   objTbl.Cell(1, 4).Range.Text = "Instal No"
   objTbl.Cell(1, 4).Range.Bold = True
   objTbl.Cell(1, 5).Range.Text = "Amt(Rs)"
   objTbl.Cell(1, 5).Range.Bold = True
   objTbl.Cell(1, 6).Range.Text = "Due Date"
   objTbl.Cell(1, 6).Range.Bold = True
   objTbl.Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
    For I = 2 To lngRows

    ' For j = 1 To intNoOfColumns

  objTbl.Cell(I, 1).Range = I - 1

     Next

   For S = 2 To lngRows

  objTbl.Cell(S, 2) = Range("A1").Value

    Next

For T = 2 To lngRows

objTbl.Cell(T, 3).Value = DateAdd("m", 1, Range("B1").Value)

Next T


    Set objCol = Nothing

    Set objRow = Nothing

    Set objDoc = Nothing

    Set objWord = Nothing

End Sub

您的帮助将不胜感激

问候

拉克什

标签: vbams-word

解决方案


利用:

objTbl.Cell(T, 3).Range.Text = DateAdd("m", 1, Range("B1").Value)

PS:如果您使用已经存在样板内容的 Word 模板,则您的大部分代码都是不必要的。


推荐阅读