服务粉丝

我们一直在努力
当前位置:首页 > 财经 >

1.4 本地窗口调试,1.6 利用ChatGPT提高编程效率

日期: 来源:编辑之谭收集编辑:谭编

导读:谭编《Excel VBA 数据处理与绘图》新书草稿。谭编推荐科研人选择Excel VBA处理数据,采用Origin绘图,结合两者的功能优势,可以提高数据处理与绘图效率。

VBA能做什么?下面来看一下dQ/dV快速计算程序的演示动图:

使用说明:

(1)请注意使用20次以内的平滑次数,过大易导致过度平滑而丧失峰信息;

(2)请将自己的充电数据、放电数据覆盖在A~D列,单击“dQ/dV”按钮,立即得到微分数据(K~N列);

(3)复制K~N列数据到Origin中绘图;

后续会发布dQ程序的编程教程。或许,你想要这个Excel dQ/dV模板文件了。文末有领取方式。


1.4 本地窗口调试

当一个复杂的科学计算程序运行时,本地窗口为程序员提供了各类资源,包括每个变量的取值变化,因此本地窗口是调试代码、单步执行、更改或查找问题的重要工具。首次运行VBE的界面中并不一定显示本地窗口,可通过单击菜单“视图→本地窗口”显示出来。

利用本地窗口查询运行程序各参数的方法:在某个过程内单击激活该过程,不停地按F8单步执行代码,可在本地窗口中查看各参数的取值发生了变化。当我们不再需要单步调试时,可以单击停止按钮。


1.6 利用ChatGPT提高编程效率
有许多强大的AI编程工具可以帮助我们快速编写代码,提高编程效率。ChatGPT机器人完全能胜任各种编程语言的代码编写,除此之外,各类AI编程工具列举如下:
(1)Kite:Kite是一款非常流行的AI编程助手,可以通过向您推荐代码来提高您的工作效率。
(2)Deep TabNine:Deep TabNine是一款基于机器学习的自动补全工具,可以极大地加速您的代码实现过程。
(3)Codota:Codota是一种基于人工智能技术的代码搜索和建议平台,可以从数百万代码文件中为您推荐最佳实践和解决方案。
(4)GitHub Copilot:GitHub Copilot 是一款基于 GPT 编写的 AI 代码生成工具,它可以根据您编写的注释和环境上下文,自动生成接近正确的代码。
(5)Hugging Face:Hugging Face是一个强大的NLP开源社区,其提供的AI模型可以帮助您在各种自然语言处理任务中进行编程。希望这些工具可以帮助您更快、更高效地编写代码。

下面以ChatGPT机器人为例,演示利用AI快速码代码。
提问一:

提问二:

提问三:

从以上对话可以看出,ChatGPT不仅给出完美的编程代码,而且还教我们怎样去调试,甚至细致到能温馨提示注意事项。

ChatGPT回答的3个代码模块,解决了我最近在开发的族谱程序所需Excel批量信息录入问题。例如我们添加姓名、字辈、父亲姓名后,Excel表格自动填充族号、世代、母亲等信息。演示动图如下:

利用VBA编程使Excel变得智能起来。例如当输入父亲姓名后,VBA自动查找父亲的族号,并与排行数字拼接为新的族号,自动填入当前族人的族号单元格中。再如,当输入字辈“正”字之后,VBA自动查找世代的数字,并自动填入世代的单元格中。

对“Person”表的编程代码如下:

Sub FindCorrespondingNumber(ROW)


    '定义变量
    Dim i As Long
    Dim j As Long
    Dim strName As String
    Dim strNumber As String

    'Sheets("Person").Range("A:C").Locked = False '将A、B、C列的锁定属性设为True
    'ActiveSheet.Unprotect '解除保护锁定


    '循环遍历Person中的姓名
    'For i = 2 To Sheets("Person").Cells(Rows.Count, 2).End(xlUp).ROW
        '获取姓名
        strName = Sheets("Person").Cells(ROW, 7).Value

        '查找对应编号
        For j = 2 To Sheets("Person").Cells(Rows.Count, 2).End(xlUp).ROW
            If Sheets("Person").Cells(j, 4).Value = strName Then
                '获取编号
                strNumber = Sheets("Person").Cells(j, 2).Value & Sheets("Person").Cells(ROW, 6).Value
                '将编号写入Sheet2的A列
                Sheets("Person").Cells(ROW, 2).Value = strNumber
                '自动递增ID
                Sheets("Person").Cells(ROW, 1).Value = Sheets("Person").Cells(ROW - 1, 1).Value + 1
                '自动填入母亲姓氏
                Sheets("Person").Cells(ROW, 9).Value = Sheets("Person").Cells(j, 10).Value
                '自动填入“男”
                Sheets("Person").Cells(ROW, 5).Value = "男"
                '自动增加排行
                Sheets("Person").Cells(ROW, 6).Value = Sheets("Person").Cells(ROW - 1, 6).Value + 1
                Exit For
            End If
        Next j
        Beep
    'Next i

    'Sheets("Person").Range("A:C").Locked = True '将A、B、C列的锁定属性设为True
    'ActiveSheet.Protect '保护工作表
End Sub
Sub FindZiBei(ROW)


    '定义变量
    Dim i As Long
    Dim j As Long
    '字辈:輅谭汝仲修,甲常福如谭,万(谭)守(谭)大元心,行斯道宗正,宏儒绍文明,志学传世远,祖德发祥龄,新铭开第泽,作述振家声,崇本光先代,安邦定永清。
    Dim ZiBeiKu(57)
    ZiBeiKu(0) = "辂": ZiBeiKu(1) = "辂谭": ZiBeiKu(2) = "汝": ZiBeiKu(3) = "仲": ZiBeiKu(4) = "修"
    ZiBeiKu(5) = "甲": ZiBeiKu(6) = "常": ZiBeiKu(7) = "福": ZiBeiKu(8) = "如": ZiBeiKu(9) = "如谭"
    ZiBeiKu(10) = "万": ZiBeiKu(11) = "万谭": ZiBeiKu(12) = "守": ZiBeiKu(13) = "守谭": ZiBeiKu(14) = "大": ZiBeiKu(15) = "元": ZiBeiKu(16) = "心"
    ZiBeiKu(17) = "行": ZiBeiKu(18) = "斯": ZiBeiKu(19) = "道": ZiBeiKu(20) = "宗": ZiBeiKu(21) = "正"
    ZiBeiKu(22) = "宏": ZiBeiKu(23) = "儒": ZiBeiKu(24) = "绍": ZiBeiKu(25) = "文": ZiBeiKu(26) = "明"
    ZiBeiKu(27) = "志": ZiBeiKu(28) = "学": ZiBeiKu(29) = "传": ZiBeiKu(30) = "世": ZiBeiKu(31) = "远"
    ZiBeiKu(32) = "祖": ZiBeiKu(33) = "德": ZiBeiKu(34) = "发": ZiBeiKu(35) = "祥": ZiBeiKu(36) = "龄"
    For i = 0 To 36
        If Sheets("Person").Cells(ROW, 8).Value = ZiBeiKu(i) Then
            Sheets("Person").Cells(ROW, 3).Value = i + 1

            Exit For
        End If
    Next i

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)    If Target.Column = 4 And Target.ROW >= 2 Then    '当第4列的某一行单元格数据改变时,执行本过程。

        '当第4列的某一行单元格数据改变时
        '自动填入“男”
        Sheets("Person").Cells(Target.ROW, 5).Value = "男"
        '自动增加排行
        Sheets("Person").Cells(Target.ROW, 6).Value = Sheets("Person").Cells(Target.ROW - 1, 6).Value + 1
    End If

    If Target.Column = 7 And Target.ROW >= 2 Then
        Application.EnableEvents = False '避免引起循环
        FindCorrespondingNumber (Target.ROW) '调用FindCorrespondingNumber过程
        Application.EnableEvents = True '恢复事件处理

    End If
    If Target.Column = 8 And Target.ROW >= 2 Then
        Application.EnableEvents = False '避免引起循环
        FindZiBei (Target.ROW) '调用查找字辈
        Application.EnableEvents = True '恢复事件处理

    End If
        If Target.Column = 5 And Target.ROW >= 2 Then
        Application.EnableEvents = False '避免引起循环
        If Sheets("Person").Cells(Target.ROW, 5).Value = 1 Then
            Sheets("Person").Cells(Target.ROW, 5).Value = "男"
        Else
            Sheets("Person").Cells(Target.ROW, 5).Value = "女"
        End If
        FindZiBei (Target.ROW) '调用查找字辈
        Application.EnableEvents = True '恢复事件处理

    End If
End Sub

dQ/dV Excel宏编程模板:
长按识别二维码

公众号后台回复:dQ

相关阅读

  • DT招聘数据新闻实习生

  • 这份工作是做什么的:参与DT的日常选题讨论,深度体验数据新闻的生产流程,包括但不限于:信号捕捉、数据分析、图表制作、内容运营等。我们希望你:1-熟练掌握AI、PS、Excel等软件,有
  • DT招聘实习生

  • 这份工作是做什么的:参与DT的日常选题讨论,深度体验数据新闻的生产流程,包括但不限于:信号捕捉、数据分析、图表制作、内容运营等。我们希望你:1-熟练掌握AI、PS、Excel等软件,有
  • “生态阅卷人”找出考评生态环境的“分数线”

  • 长江日报大武汉客户端3月8日讯(记者金文兵)3月2日下午5时,周珂接到指令,当晚有一批检测样品需要加班检测出结果……类似这样的临时加急任务,她已记不清有多少回。 2009年,从武汉大
  • 国家数据局即将诞生,将解决哪些问题?

  • 3月7日,在第十四届全国人民代表大会第一次会议上,国务委员兼国务院秘书长肖捷受国务院委托向大会作了国务院机构改革方案的说明。“组建国家数据局”是13项国务院机构改革方案

热门文章

  • “复活”半年后 京东拍拍二手杀入公益事业

  • 京东拍拍二手“复活”半年后,杀入公益事业,试图让企业捐的赠品、家庭闲置品变成实实在在的“爱心”。 把“闲置品”变爱心 6月12日,“益心一益·守护梦想每一步”2018年四

最新文章

  • 今天的头条,是她

  • 笑靥如花,可盐可甜优雅如她,可爱如她今天是“三八”国际劳动妇女节向她说一声节日快乐!是妻子,是母亲,是女儿是职场精英,是行业翘楚她们撑起了社会的半边天不被定义无关年龄岁月带
  • 1.4 本地窗口调试,1.6 利用ChatGPT提高编程效率

  • 导读:谭编《Excel VBA 数据处理与绘图》新书草稿。谭编推荐科研人选择Excel VBA处理数据,采用Origin绘图,结合两者的功能优势,可以提高数据处理与绘图效率。VBA能做什么?下面来看
  • 向女性身体致敬的时尚史

  • 时髦酷姐们的穿搭向来不分四季,但最近的风向更是愈发的「清凉」。从Instagirls的线上「照片墙」到近日热火朝天的线下时装周街拍,她们都亲自上场示范各种如透视、裸体错位印花
  • 今天周三,但我们已经下班了

  • 2023年,是三八国际妇女节第113个年头。今天下午,B站给所有女员工放假半天。每到3月8日这一天,人们会为妇女争取平等权益而喝彩,并以节日为契机,让更多有力量的独立女性们,能够被社
  • 她们在网暴中「幸存」

  • 文 | 李晓芳编辑 | 王珊瑚恶意的出现毫无道理可言你最好是个健全人,才有可能获得最基本的尊重。视频博主Ruby在一个夜晚登录自己的社交账号,发现评论和私信区挤进了几千条信息