吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 155|回复: 9
收起左侧

[经验求助] VBA编码错误,求解答。

[复制链接]
yan515559 发表于 2024-5-16 14:00
25吾爱币
我的要求:在EXCLE中创建一个新工作表,汇总同一个文件夹中工作簿的多个关键字指定列。我用AI,编写了VBA代码,经修改后是以下代码,但运行后提示:第一行第四列语错误。求解答,哪里出问题了,怎么修改。代码如下:

Sub 汇总工作簿关键字指定列()
    Dim ws As Worksheet
    Dim wb As Workbook
    Dim fd As FileDialog
    Dim strPath As String
    Dim strKeyword As String
    Dim rng As Range
    Dim i As Long, j As Long
    Dim colIndex As Long
    ' 设置关键字
    strKeyword = InputBox("请输入要汇总的关键字(多个关键字用逗号分隔):", "关键字")
    colIndex = InputBox("请输入要汇总的列索引(从1开始):", "列索引")
    ' 选择文件夹
    Set fd = Application.FileDialog(msoFileDialogFolderPicker)
    If fd.Show = -1 Then
        strPath = fd.SelectedItems(1)
    Else
        Exit Sub
    End If
    ' 创建新工作表
    Set ws = ThisWorkbook.Worksheets.Add
    ws.Name = "汇总结果"
    ' 遍历文件夹中的工作簿
    strPath = strPath & "\"
    strKeyword = Split(strKeyword, ",")
    For Each strKeyword In strKeyword
        For Each wb In Workbooks
            If wb.Path <> ThisWorkbook.Path And Right(wb.Name, 4) = "xlsx" Then
                On Error Resume Next
                Set rng = wb.Worksheets(1).Cells.Find(strKeyword)
                If Not rng Is Nothing Then
                    For i = 1 To rng.Rows.Count
                        For j = 1 To rng.Columns.Count
                            ws.Cells(ws.Cells(Rows.Count, 1).End(xlUp).Row + 1, j).Value = rng.Cells(i, j).Value
                        Next j
                    Next i
                End If
                On Error GoTo 0
            End If
        Next wb
    Next strKeyword
    MsgBox "汇总完成!"
End Sub


发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

jyjjf 发表于 2024-5-16 14:33
哪个代码出错了?来个截图
 楼主| yan515559 发表于 2024-5-16 14:44
jyjjf 发表于 2024-5-16 14:33
哪个代码出错了?来个截图

现在无法截图上传。提示:第1行,第4列。Excel宏提示语法错误:Unexpected identifier
sunnychen 发表于 2024-5-16 14:52
第1行,第4列不就是“汇总工作簿关键字指定列”吗,改成英文试试
lisongmei 发表于 2024-5-16 14:55
改AI写的还不如发出来让人帮写来得快。。
 楼主| yan515559 发表于 2024-5-16 15:02
sunnychen 发表于 2024-5-16 14:52
第1行,第4列不就是“汇总工作簿关键字指定列”吗,改成英文试试

还是不可以。
 楼主| yan515559 发表于 2024-5-16 15:03
lisongmei 发表于 2024-5-16 14:55
改AI写的还不如发出来让人帮写来得快。。

求高手解答,让我摆脱重复工作。
Batcher 发表于 2024-5-16 15:15
Excel 2016 及以上版本自带PowerQuery,不需要写一行代码或公式就可以实现这个需求。
https://learn.microsoft.com/zh-c ... bine-files-overview
https://zhuanlan.zhihu.com/p/262255702
https://www.jianshu.com/p/e4e766e215cc
 楼主| yan515559 发表于 2024-5-16 15:17
上面代码中:For Each strKeyword In strKeyword,运行到 这里,提供编译错误:FOR EACH 只能编历集合对象或数组。
jyjjf 发表于 2024-5-16 15:18
yan515559 发表于 2024-5-16 15:03
求高手解答,让我摆脱重复工作。

你的引用设置对了没有?
打开VBA 编辑器,选择“工具”>“引用”,然后确保勾选了正确的库(如“Microsoft Office xx.x Object Library”)。

或者你重新描述一下你的需求,让别人帮你弄一个新代码,
总感觉你自己都没有描述清楚需求。
用AI的前提就是,你提的需求要明确,步骤简单(复杂的要分步骤提问)
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-6-2 01:58

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表