如何在Powerpoint PPTM中通过VBA脚本打开CSV文件

时间:2013-11-08 12:18:47

标签: vba csv adodb powerpoint-vba

我有一个复杂的Powerpoint Presentation,最终通过ISpringPro

导出为一堆单个幻灯片

由于导出过程,需要管理幻灯片之间的导航链接,以便各个导出的幻灯片可以导航到其他人。

我正在尝试编写一个VBA脚本以允许全局查找&替换powerpoint中的所有超链接。

我的原型版可以正常工作,您可以在InputBox中键入单个URL,在第二个输入框中键入第二个URL来查找和替换。但是我想从2列CSV文件中读取所有这些信息并让它看起来整体。

我现在无法让VBA使用ADODB连接打开CSV文件。我想我可能会错过参考,但VBA真的不是我的强项。

我已粘贴下面的代码。但它正在吹嘘Set cn = New ADODB.Connection说它不知道那种类型是什么。

我错过了某种汇编参考吗?

With Application.FileDialog(msoFileDialogOpen)
    .AllowMultiSelect = False
    .Show

    Dim csvPath As String
    Dim csvFolder As String

    csvPath = .SelectedItems(1)
    csvFolder = StripFilename(csvPath)


    Dim cn As Object
    Dim rs As Object
    Dim strsql As String
    Dim col As Integer

    strsql = "SELECT OLDURL,NEWURL FROM " & csvPath


    Dim cn As ADODB.Connection, rs As ADODB.Recordset, f As Integer

    Set cn = New ADODB.Connection
    'On Error Resume Next
    cn.Open "Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
        "Dbq=" & strFolder & ";" & _
        "Extensions=csv,tab,txt;"
    'On Error GoTo 0
    If cn.State <> adStateOpen Then Exit Sub
    Set rs = New ADODB.Recordset
    'On Error Resume Next
    rs.Open strsql, cn, adOpenForwardOnly, adLockReadOnly, adCmdText
    'On Error GoTo 0
    If rs.State <> adStateOpen Then
        cn.Close
        Set cn = Nothing
        Exit Sub
    End If


Dim iRet As Integer

    For f = 0 To rs.Fields.Count - 1
        iRet = MsgBox(rs.Fields(f).Name)
    Next f

    rs.Close
    Set rs = Nothing
    cn.Close
    Set cn = Nothing



End With

1 个答案:

答案 0 :(得分:0)

抓一点。

我需要以管理员身份运行电源点,然后在宏编辑器中转到

工具&gt;参考文献&gt;

并添加对最新Microsoft ActiveX数据对象库的引用。

相关问题