VBA-添加一个月至今

问题描述 投票:0回答:2

我有一个电子表格,我试图在其中创建表格并发送文字。那部分工作正常。关于日期,这是我唯一的问题。我在单元格B1中有一个日期(10/04/2020)。我必须在该日期前加上一个月。我正在使用DateAdd函数。当我执行VBA时,出现错误“对象在此行上不支持此属性或方法objTbl.Cell(T,3).Value = DateAdd(“ m”,1,范围(“ B1”)。Value)

我的代码如下:-

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

将非常感谢您的帮助

问候

rakesh

vba ms-word
2个回答
0
投票

您可以先将范围B1的值放在日期变量中,然后应用方法adddate并检查


0
投票

用途:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.