GPT 也没吹的这么神啊,一个 VBA 写了一个小时了 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jsjcjsjc
V2EX    问与答

GPT 也没吹的这么神啊,一个 VBA 写了一个小时了

  •  
  •   jsjcjsjc 2023-04-22 10:48:23 +08:00 4484 次点击
    这是一个创建于 955 天前的主题,其中的信息可能已经有所发展或是发生改变。
    GPT 也没吹的这么神啊,一个 VBA 写了一个小时了

    ```
    使用 excel VBA 编写一个宏,名字为"数据分析",存放在当前文档
    要求如下:
    将当前 sheet 的 E 列,F 列,G 列在新的 sheet"analyse"中进行数据透视,如果已经存在 sheet"analyse",则覆盖.
    将 E 列放入"行"
    将 F 列和 G 列放入"值",并且都为求和项
    ```
    19 条回复    2023-04-23 10:40:43 +08:00
    laila
        1
    laila  
       2023-04-22 10:55:41 +08:00
    用 gpt4 试试
    beimenjun
        2
    beimenjun  
    PRO
       2023-04-22 10:55:43 +08:00
    检查自己的网络情况

    Sub 数据分析()
    Dim ws As Worksheet
    Set ws = ActiveSheet ' 获取当前活动 sheet
    Dim analyse_ws As Worksheet
    On Error Resume Next ' 尝试打开 "analyse" sheet ,如果不存在则出错,然后创建一个新的 sheet
    Set analyse_ws = ThisWorkbook.Worksheets("analyse")
    If analyse_ws Is Nothing Then
    Set analyse_ws = ThisWorkbook.Worksheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
    analyse_ws.Name = "analyse"
    End If
    On Error GoTo 0

    ' 数据透视表设置
    analyse_ws.Cells.ClearContents
    analyse_ws.Activate
    Dim pvtTable As PivotTable
    Set pvtTable = analyse_ws.PivotTableWizard(SourceType:=xlDatabase, SourceData:=ws.UsedRange, TableDestination:=analyse_ws.Range("A1"), TableName:="数据透视表")
    With pvtTable
    .PivotFields("E").Orientation = xlRowField
    .AddDataField .PivotFields("F"), "F 求和", xlSum
    .AddDataField .PivotFields("G"), "G 求和", xlSum
    End With
    End Sub
    jsjcjsjc
        3
    jsjcjsjc  
    OP
       2023-04-22 11:18:15 +08:00
    @beimenjun 也不行哈
    quzard
        4
    quzard  
       2023-04-22 11:19:21 +08:00
    quzard
        5
    quzard  
       2023-04-22 11:19:38 +08:00   1
    Sub 数据分析()
    Dim wb As Workbook
    Dim wsCurrent As Worksheet, wsAnalyse As Worksheet
    Dim pvtCache As PivotCache
    Dim pvtTable As PivotTable

    ' 设置相关对象
    Set wb = ThisWorkbook
    Set wsCurrent = ActiveSheet

    ' 检查是否存在名为 "analyse" 的工作表
    On Error Resume Next
    Set wsAnalyse = wb.Worksheets("analyse")
    If Not wsAnalyse Is Nothing Then
    Appication.DisplayAlerts = False
    wsAnalyse.Delete
    Application.DisplayAlerts = True
    End If
    On Error GoTo 0

    ' 创建新的 "analyse" 工作表
    Set wsAnalyse = wb.Worksheets.Add
    wsAnalyse.Name = "analyse"

    ' 创建数据透析缓存
    Set pvtCache = wb.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=wsCurrent.UsedRange)

    ' 在新工作表创建透析项
    Set pvtTable = pvtCache.CreatePivotTable(TableDestination:=wsAnalyse.Range("A3"), TableName:="PivotTable1")

    ' 设置行字段,列字段和值字段
    With pvtTable
    With .PivotFields(wsCurrent.Cells(1, 5).Value) '取 E 列的列头名称作为行字段
    .Orientation = xlRowField
    .Position = 1
    End With

    With .PivotFields(wsCurrent.Cells(1, 6).Value) '取 F 列的列头名称作为值字段
    .Orientation = xlDataField
    .Function = xlSum
    .Position = 1
    .NumberFormat = "#,##0.00_);[Red](#,##0.00)"
    End With

    With .PivotFields(wsCurrent.Cells(1, 7).Value) '取 G 列的列头名称作为值字段
    .Orientation = xlDataField
    .Function = xlSum
    .Position = 2
    .NumberFormat = "#,##0.00_);[Red](#,##0.00)"
    End With
    End With

    MsgBox "数据分析完成"
    End Sub
    quzard
        6
    quzard  
       2023-04-22 11:20:51 +08:00


    xiaowowo
        7
    xiaowowo  
       2023-04-22 11:40:39 +08:00   7
    楼主是懂钓鱼的。
    wonderfulcxm
        8
    wonderfulcxm  
       2023-04-22 11:50:05 +08:00 via iPhone   1
    怎么可能写一个小时,你是拔号上网吗?
    jsjcjsjc
        9
    jsjcjsjc  
    OP
       2023-04-22 11:53:25 +08:00
    @xiaowowo 哈哈哈,被你发现了
    jsjcjsjc
        10
    jsjcjsjc  
    OP
       2023-04-22 11:53:37 +08:00
    @wonderfulcxm 一直再改哈
    jsjcjsjc
        11
    jsjcjsjc &bsp;
    OP
       2023-04-22 11:54:54 +08:00
    @quzard 感谢,确实可以~~你用的是哪个版本的 API
    TabGre
        12
    TabGre  
       2023-04-22 12:42:11 +08:00 via iPhone
    @quzard 这是哪个镜像站
    jsjcjsjc
        13
    jsjcjsjc  
    OP
       2023-04-22 13:37:33 +08:00
    @quzard 对了,最后你的补充是直接错误还是需要对 vba 有了解哈?
    quzard
        14
    quzard  
       2023-04-22 14:05:33 +08:00
    @jsjcjsjc #12 根据运行错误给 gpt 进行反馈
    chonger
        15
    chonger  
       2023-04-22 15:00:41 +08:00
    确实没那么神,很多东西都是错的,有时候也会一本正经的编故事,但你要知道,这仅仅是个开始。
    z7356995
        16
    z7356995  
       2023-04-22 15:42:53 +08:00 via Android
    op 这么一钓鱼,底下一堆强迫症帮他 debug 了
    jsjcjsjc
        17
    jsjcjsjc  
    OP
       2023-04-22 16:21:24 +08:00
    @z7356995 见笑了,哈哈
    zgl263885
        18
    zgl263885  
       2023-04-22 19:32:51 +08:00 via iPhone
    @z7356995 人间清醒啊
    tracy4816
        19
    tracy4816  
       2023-04-23 10:40:43 +08:00
    虽然知道是钓鱼 但还是回复一下
    感觉平时比如后端, 算法的代码, chatgpt 处理的会比较好
    但是周末试了一下低基础的编程, xcode 写涉及到 ui+逻辑的 swiftui 代码 就会来回改来改去都没法运行 or 达不到想要的效果;
    不确定是因为 xcode 的 api 改的比较快, 导致 2021 年的 data 可能就无法 adjusted 到最新的逻辑, 还是说涉及到 ui+逻辑处理起来确实比较困难, 毕竟是纯文字描述堪比打电话 debug...
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1010 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 22:56 PVG 06:56 LAX 14:56 JFK 17:56
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86