在excel工作表里导入了sql数据库表的记录,这些记录随时可能被改动,在一定的时间间隔内更新这个excel表里的内容,这段VBA代码怎么写?

解决方案 »

  1.   

    我写了这样一个宏来执行 在excel中刷新显示数据库表记录的功能,但是怎么在打开excel后间隔段时间自动运行这个宏呢?
    Sub Macro2()
        ActiveWorkbook.RefreshAll
        Dim chan As Long
       chan = DDEInitiate("LNSDDE", "xq2.Subsystem 1.DevNV")   DDEPoke chan, "Device 3.nvOut[0]", Sheet1.Cells(1, 1)
       DDETerminate (chan)    ActiveWorkbook.RefreshAll
    End Sub
      

  2.   

    我作了改进,在VB里form里加了个command按钮来实现,但还有一些小问题,就是只能以只读的 方式打开文件 ,应该怎么该动代码?
    Private Sub Command1_Click()
        Dim xlApp As Excel.Application
        Dim xlBook As Excel.Workbook
        Dim xSheet As Excel.Worksheet
        Set xlApp = New Excel.Application
        Set xlBook = xlApp.Workbooks.Open("G:\Documents and Settings\gentleman1\My Documents\node.xls", Random, False) 
        Set xSheet = xlBook.Worksheets(1)
        xlApp.Visible = True
        xlApp.Run "Macro2"       Set xlBook = Nothing
        Set xlApp = Nothing
        
    End Sub
    我的macro2有这么几句
    ....
     m(i - 3) = Sheet1.Cells(i, 5).Value
        Next i
        ActiveWorkbook.RefreshAll
        ActiveWorkbook.Save    '在这句执行时,提示因为已只读方式打开文件,需要另存为副
                             本,谁帮我解决这个问题啊?在上面的open语句应该怎么改动一下?
        
       ActiveWorkbook.up
    ....