在Outlook中编辑Excel中的单元格而不重新打开工作簿
我想使用VBA从Outlook编辑Excel中的单元格。
我想这样做:
我第一次运行macros,单元格A1是“1”。
我第二次运行macros,单元格A2是“1”。
我第三次运行macros,单元格A3是“1”。
。
。
当我第五次运行macros时,它将回到单元格A1,并将单元格A1的值从“1”增加到“2”。
Dim count As Integer: count = 1 Dim number As Integer: number = 1 Sub test() Dim xlApp As Object Dim xlWB As Object Dim xlSheet As Object On Error Resume Next Set xlApp = GetObject(, "Excel.Application") If Err <> 0 Then Set xlApp = CreateObject("Excel.Application") End If On Error GoTo 0 If (IsWorkBookOpen("D:\Book1.xlsx") = True) Then 'Check workbook is opening or not Set xlWB = xlApp.Workbooks("D:\Book1.xlsx") Else Set xlWB = xlApp.Workbooks.Open("D:\Book1.xlsx") End If Set xlSheet = xlWB.Sheets("Sheet1") If (count < 5) Then xlSheet.Range("A" & count) = number count = count + 1 Else count = 0 number = number + 1 End If End Sub Function IsWorkBookOpen(FileName As String) Dim ff As Long, ErrNo As Long On Error Resume Next ff = FreeFile() Open FileName For Input Lock Read As #ff Close ff ErrNo = Err On Error GoTo 0 Select Case ErrNo Case 0: IsWorkBookOpen = False Case 70: IsWorkBookOpen = True Case Else: Error ErrNo End Select End Function
它说“下标超出范围”。 我有这个行的一个问题: Set xlWB = xlApp.Workbooks("D:\Book1.xlsx")
。 当我debugging时,我看到这条线突出显示。
这是因为使用Workbooks(...)
您隐式使用Workbooks
对象的Item()
属性,该对象需要对象的名称或索引号 ,而您将获取带path的全名
使用
Set xlWB = xlApp.workbooks("Book1.xlsx")
- 将已closures工作簿的一系列单元格复制到已包含使用VBA的正文的Outlook电子邮件中?
- outlook vba application.goto
- Microsoft访问从Outlook的所有文件夹中导入所有电子邮件
- Excelmacros到Outlook(正文和/ cc)
- 杀死Outlook邮件正文中的空格
- VBA到Outlook问题 – 不要用逗号表示数字
- 检查是否有未读电子邮件,附件名称中包含“Production_Plan”作为名称的一部分,使用excel – vba
- 只需点击一下鼠标,即可将macros分配给工作簿的多个Excel工作表
- VBA-Excel如何在Outlook中find交换用户的电子邮件地址