我有一个电子表格,我试图在其中创建表格并发送文字。那部分工作正常。关于日期,这是我唯一的问题。我在单元格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
您可以先将范围B1的值放在日期变量中,然后应用方法adddate并检查
用途:
objTbl.Cell(T, 3).Range.Text = DateAdd("m", 1, Range("B1").Value)
PS:如果您使用的Word模板已经存在样板内容,则大多数代码都是不必要的。