传授大伙如何用ai工具优化自己的代码》》拥抱机器时代》》提示词工程

news2024/11/24 19:53:45

之前在做数据开发时候遇到的问题数据表格批量生成建表的宏出问题了,此时只好硬着头皮写vba代码,此时您想我不会vba也不知道怎么使用但是sql语句建表格式总还是知道的那么此刻开始我们的提示词开发代码时刻

先进行具体提示词开发>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>您打开了kimi然后问道

表格Vba如何在sheet1输入表明和字段名和字段类型,字段长度,字段是否为空,是否主键,中文注释,自动生成建表并且可以生成不同的表并且输出到d盘文件txt上

Sub GenerateSQLAndOutputToDDrive()
    Dim wsInput As Worksheet
    Dim sql As String
    Dim i As Long, j As Long
    Dim tableName As String
    Dim fieldName As String
    Dim fieldType As String
    Dim fieldLength As String
    Dim isNullable As String
    Dim isPrimaryKey As String
    Dim fieldComment As String
    Dim outputFilePath As String
    Dim dict As Object
    Dim lastRow As Long
    
    ' 创建一个字典来存储已经处理过的表名
    Set dict = CreateObject("Scripting.Dictionary")
    
    ' 设置输入工作表
    Set wsInput = ThisWorkbook.Sheets("Sheet1")
    
    ' 设置输出文件路径
    outputFilePath = "D:\CreateTableSQL.txt"
    
    ' 打开文件准备写入
    Open outputFilePath For Output As #1
    
    ' 遍历每一行数据
    lastRow = wsInput.Cells(wsInput.Rows.Count, "A").End(xlUp).Row
    For i = 2 To lastRow
        tableName = wsInput.Cells(i, "A").Value
        
        ' 检查是否已经处理过这个表名
        If Not dict.Exists(tableName) Then
            sql = "CREATE TABLE " & tableName & " (" & vbCrLf
            
            ' 初始化一个标志来标记是否是第一个字段
            Dim isFirstField As Boolean
            isFirstField = True
            
            ' 构建字段行
            For j = 2 To lastRow
                If wsInput.Cells(j, "A").Value = tableName Then
                    fieldName = wsInput.Cells(j, "B").Value
                    fieldType = wsInput.Cells(j, "C").Value
                    fieldLength = wsInput.Cells(j, "D").Value
                    isNullable = IIf(wsInput.Cells(j, "E").Value = "YES", "NOT NULL", "NULL")
                    isPrimaryKey = IIf(wsInput.Cells(j, "F").Value = "YES", "PRIMARY KEY", "")
                    fieldComment = wsInput.Cells(j, "G").Value
                    
                    If isFirstField Then
                        isFirstField = False
                    Else
                        sql = sql & ", " & vbCrLf
                    End If
                    
                    sql = sql & "    " & fieldName & " " & fieldType
                    If fieldLength <> "" Then
                        sql = sql & "(" & fieldLength & ")"
                    End If
                    sql = sql & " " & isNullable & " " & isPrimaryKey
                    If fieldComment <> "" Then
                        sql = sql & " COMMENT '" & fieldComment & "'"
                    End If
                End If
            Next j
            
            ' 移除最后一个逗号
            If Len(sql) > 2 Then
                sql = Left(sql, Len(sql) - 2)
            End If
            sql = sql & vbCrLf & ");" & vbCrLf
            
            ' 输出到文本文件
            Print #1, sql
            
            ' 将表名添加到字典中
            dict.Add tableName, Nothing
        End If
    Next i
    ' 关闭文件
    Close #1
    
    MsgBox "SQL语句已生成并输出到:" & outputFilePath
End Sub

您发现生成出来代码中文注释乱码于是问了kimi

1. **确保VBA编辑器使用正确的字体**:可以通过VBA编辑器的“工具”->“选项”->“编辑器格式”来更改字体,选择支持中文的字体,如宋体或微软雅黑。

可是新的问题是末尾还被多吃了注释和结尾

于是你拿着代码问

Sub GenerateSQLAndOutputToDDrive()
    Dim wsInput As Worksheet
    Dim sql As String
    Dim i As Long, j As Long
    Dim tableName As String
    Dim fieldName As String
    Dim fieldType As String
    Dim fieldLength As String
    Dim isNullable As String
    Dim isPrimaryKey As String
    Dim fieldComment As String
    Dim outputFilePath As String
    Dim dict As Object
    Dim lastRow As Long
    
    ' 创建一个字典来存储已经处理过的表名
    Set dict = CreateObject("Scripting.Dictionary")
    
    ' 设置输入工作表
    Set wsInput = ThisWorkbook.Sheets("Sheet1")
    
    ' 设置输出文件路径
    outputFilePath = "D:\CreateTableSQL.txt"
    
    ' 打开文件准备写入
    Open outputFilePath For Output As #1
    
    ' 遍历每一行数据
    lastRow = wsInput.Cells(wsInput.Rows.Count, "A").End(xlUp).Row
    For i = 2 To lastRow
        tableName = wsInput.Cells(i, "A").Value
        
        ' 检查是否已经处理过这个表名
        If Not dict.Exists(tableName) Then
            sql = "CREATE TABLE " & tableName & " (" & vbCrLf
            
            ' 初始化一个标志来标记是否是第一个字段
            Dim isFirstField As Boolean
            isFirstField = True
            
            ' 构建字段行
            For j = 2 To lastRow
                If wsInput.Cells(j, "A").Value = tableName Then
                    fieldName = wsInput.Cells(j, "B").Value
                    fieldType = wsInput.Cells(j, "C").Value
                    fieldLength = wsInput.Cells(j, "D").Value
                    isNullable = IIf(wsInput.Cells(j, "E").Value = "YES", "NOT NULL", "NULL")
                    isPrimaryKey = IIf(wsInput.Cells(j, "F").Value = "YES", "PRIMARY KEY", "")
                    fieldComment = wsInput.Cells(j, "G").Value
                    
                    If isFirstField Then
                        isFirstField = False
                    Else
                        sql = sql & ", " & vbCrLf
                    End If
                    
                    sql = sql & "    " & fieldName & " " & fieldType
                    If fieldLength <> "" Then
                        sql = sql & "(" & fieldLength & ")"
                    End If
                    sql = sql & " " & isNullable & " " & isPrimaryKey
                    If fieldComment <> "" Then
                        sql = sql & " COMMENT '" & fieldComment & "'"
                    End If
                End If
            Next j
            
            ' 移除最后一个逗号
            If Len(sql) > 2 Then
                sql = Left(sql, Len(sql) - 2)
            End If
            sql = sql & vbCrLf & ");" & vbCrLf
            
            ' 输出到文本文件
            Print #1, sql
            
            ' 将表名添加到字典中
            dict.Add tableName, Nothing
        End If
    Next i
    ' 关闭文件
    Close #1
    
    MsgBox "SQL语句已生成并输出到:" & outputFilePath
End Sub这段代码优化下最后一个逗号需要消失并且不影响最后一个字段注释
这段 VBA 代码的目的是从一个 Excel 工作表中读取数据,然后生成 SQL 创建表的语句,并将这些语句输出到一个文本文件中。代码中存在一个小问题,即在生成 SQL 语句时,最后一个字段后面可能会多出一个逗号。为了解决这个问题,我们可以在循环的最后检查是否需要添加逗号,而不是在每次迭代时都添加。

以下是优化后的代码:

```vba
Sub GenerateSQLAndOutputToDDrive()
    Dim wsInput As Worksheet
    Dim sql As String
    Dim i As Long, j As Long
    Dim tableName As String
    Dim fieldName As String
    Dim fieldType As String
    Dim fieldLength As String
    Dim isNullable As String
    Dim isPrimaryKey As String
    Dim fieldComment As String
    Dim outputFilePath As String
    Dim dict As Object
    Dim lastRow As Long
    Dim fieldCount As Long
    
    ' 创建一个字典来存储已经处理过的表名
    Set dict = CreateObject("Scripting.Dictionary")
    
    ' 设置输入工作表
    Set wsInput = ThisWorkbook.Sheets("Sheet1")
    
    ' 设置输出文件路径
    outputFilePath = "D:\CreateTableSQL.txt"
    
    ' 打开文件准备写入
    Open outputFilePath For Output As #1
    
    ' 遍历每一行数据
    lastRow = wsInput.Cells(wsInput.Rows.Count, "A").End(xlUp).Row
    For i = 2 To lastRow
        tableName = wsInput.Cells(i, "A").Value
        
        ' 检查是否已经处理过这个表名
        If Not dict.Exists(tableName) Then
            sql = "CREATE TABLE " & tableName & " (" & vbCrLf
            fieldCount = 0 ' 初始化字段计数器
            
            ' 构建字段行
            For j = 2 To lastRow
                If wsInput.Cells(j, "A").Value = tableName Then
                    fieldName = wsInput.Cells(j, "B").Value
                    fieldType = wsInput.Cells(j, "C").Value
                    fieldLength = wsInput.Cells(j, "D").Value
                    isNullable = IIf(wsInput.Cells(j, "E").Value = "YES", "NOT NULL", "NULL")
                    isPrimaryKey = IIf(wsInput.Cells(j, "F").Value = "YES", "PRIMARY KEY", "")
                    fieldComment = wsInput.Cells(j, "G").Value
                    
                    fieldCount = fieldCount + 1 ' 增加字段计数器
                    
                    If fieldCount > 1 Then
                        sql = sql & ", " & vbCrLf
                    End If
                    
                    sql = sql & "    " & fieldName & " " & fieldType
                    If fieldLength <> "" Then
                        sql = sql & "(" & fieldLength & ")"
                    End If
                    sql = sql & " " & isNullable & " " & isPrimaryKey
                    If fieldComment <> "" Then
                        sql = sql & " COMMENT '" & fieldComment & "'"
                    End If
                End If
            Next j
            
            sql = sql & vbCrLf & ");" & vbCrLf
            
            ' 输出到文本文件
            Print #1, sql
            
            ' 将表名添加到字典中
            dict.Add tableName, Nothing
        End If
    Next i
    ' 关闭文件
    Close #1
    
    MsgBox "SQL语句已生成并输出到:" & outputFilePath
End Sub
```

在这个优化后的代码中,我添加了一个名为 `fieldCount` 的变量来跟踪每个表中字段的数量。在构建 SQL 语句时,只有在字段计数器大于 1 时(即不是第一个字段),才会添加逗号和换行符。这样可以确保最后一个字段后面不会有多余的逗号。

优化代码后您在d盘拿到结果了

成功输出批量建表的需求宏,你开心的懂了》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

小白通过和机器人不断提示沟通于是自己也会解决一下一些问题,如果您 还不会提示词可以围绕what,result,how来不断 获取信息纠正信息获取您想要的结果。拥抱机器时代来临。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2122846.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringCloud nacos

**************************** 准备工作 首先准备号nacos的镜像 根据镜像创建nacos容器 nacos:container_name: nacosimage: nacos/nacos-server:v2.1.0-slimports: #需要监听三个端口- "8848:8848"- "9848:9848"- "9849:9849"privileged: tr…

Axure高效打造大屏可视化BI数据展示

在使用AxureRP软件设计大屏可视化BI数据显示模板时&#xff0c;我们可以遵循一系列高效的方法和步骤来确保设计的质量和效率。以下是一个详细的教程&#xff0c;指导如何高效地使用AxureRP进行大屏界面设计。 一、确定设计标准与分辨率 通常&#xff0c;大屏可视化设计以标准的…

MySQL事务【后端 13】

MySQL事务 在数据库管理系统中&#xff0c;事务&#xff08;Transaction&#xff09;是一个非常重要的概念&#xff0c;它确保了数据库操作的完整性和一致性。MySQL作为一种流行的关系型数据库管理系统&#xff0c;自然也支持事务处理。本文将深入探讨MySQL事务的基本概念、特性…

基于YOLOv8的PCB缺陷检测算法,加入一种基于内容引导注意力(CGA)的混合融合方案(一)

&#x1f4a1;&#x1f4a1;&#x1f4a1;本文内容&#xff1a;针对基于YOLOv8的PCB缺陷检测算法进行性能提升&#xff0c;加入各个创新点做验证性试验。 1&#xff09;提出了一种基于内容引导注意力(CGA)的混合融合方案&#xff0c;mAP0.5由原始的0.966提升至0.975 1.PCB缺陷…

Django 如何全局捕获异常和DEBUG

DEBUG 默认&#xff1a;False 一个开启、关闭调试模式的布尔值。 永远不要在 DEBUG 开启的情况下将网站部署到生产中。 调试模式的主要功能之一是显示详细的错误页面。如果你的应用程序在 DEBUG 为 True 时引发了异常&#xff0c;Django 会显示一个详细的回溯&#xff0c;包…

AplPost使用

请求get 方法 1&#xff0c;添加token 2&#xff0c;填写get 的参数 2,post方法 把对象的形式直接复制到row里面 3&#xff0c;delete方法 可以直接后面拼接参数

CTK框架(八):服务追踪

目录 1.简介 2.实现方式 3.具体实现 3.1.新建插件PluginA​​ 3.2.新建插件PluginB 4.服务追踪的优势 5.应用场景 6.总结 1.简介 CTK服务追踪是一种机制&#xff0c;用于在CTK插件框架中追踪和管理插件提供的服务。当一个插件注册了一个服务到服务注册中心后&#xff0…

SCADA|KingIOServer数据存入KingHistorian的过程记录

哈喽,你好啊,我是雷工! KingIOServer是采集数据的软件,KingHistorian是工业数据库; 最近用到KingIOServer采集到的数据存入到KingHistorian工业库,然后KingFusion再连接KingHistorian获取历史数据并曲线展示的应用功能; 以下为测试笔记; 01 软件安装 KingIOServer软…

动态代理IP池设计:打造高效网络工具

在互联网飞速发展的今天&#xff0c;动态代理IP池成为了网络世界中的一大法宝。无论是数据采集、网络营销还是电商运营&#xff0c;动态代理IP池都能提供极大的便利。今天&#xff0c;我们来深入探讨一下如何设计一个高效的动态代理IP池。 什么是动态代理IP池&#xff1f; 动…

高性能多目标进化优化算法求解DTLZ1-DTLZ9,MATLAB代码

DTLZ&#xff08;Deb-Thiele-Laumanns-Zitzler&#xff09;测试函数系列是多目标优化领域中一组广泛使用的基准测试问题。这些测试问题由Kalyanmoy Deb、Lothar Thiele、Marco Laumanns和Eckart Zitzler于2002年提出&#xff0c;旨在评估和比较多目标优化算法的性能。以下是DTL…

HTML5+CSS+JS制作中秋佳节页面

HTML5CSSJS制作中秋佳节页面 中秋节&#xff0c;是中国民间的传统节日。每年农历八月十五庆祝。 在中秋节这一天&#xff0c;人们会通过各种方式庆祝&#xff0c;其中最重要的活动之一就是赏月。家人团聚在一起&#xff0c;共同欣赏明亮的月亮。同时&#xff0c;吃月饼也是中秋…

【Go】-Gin框架

目录 Gin框架简介 简单示例 Gin渲染 HTML渲染 自定义模板函数 静态文件处理 使用模板继承 JSON渲染和XML渲染 获取参数 获取querystring参数 获取form参数 获取Path参数 参数绑定 文件上传 单个文件上传 参数 多个文件上传 重定向 HTTP重定向 路由重定向 …

【Tourism】Xianyang

文章目录 1、陕西省咸阳市2、清渭楼3、古渡廊桥4、古渡遗址博物馆5、文庙6、窦家BingBing面7、凤凰台8、安国寺9、福园巷子10、参考 1、陕西省咸阳市 咸阳市&#xff0c;陕西省辖地级市&#xff0c;地处陕西省关中平原中部&#xff0c;是中国大地原点所在地&#xff0c;其境东…

iPhone 16系列发布:硬件升级但创新乏力?iPhone还值得入手吗?

2024年苹果发布会如约而至&#xff0c;重磅推出了iPhone 16系列。然而&#xff0c;发布会结束后&#xff0c;许多科技评论员和用户不禁质疑&#xff1a;苹果的创新精神是否逐渐消退&#xff1f;从发布会的内容来看&#xff0c;iPhone 16在设计、性能上有所提升&#xff0c;但和…

软件测试之单元测试与unittest框架详解

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 单元测试的定义 1. 什么是单元测试&#xff1f; 单元测试是指&#xff0c;对软件中的最小可测试单元在与程序其他部分相隔离的情况下进行检查和验证的工作&…

快来看,图书《人工智能怎么学》电子书上线啦!

图书《人工智能怎么学》出版后&#xff0c;受到了读者们的喜爱&#xff0c;被读者们亲切的称为“人工智能宝典”。不少读者留言说书籍具有很强的检索功能&#xff0c;想学人工智能的某些知识时&#xff0c;通过查阅此书&#xff0c;很方便就能够找到相关的著名教材、精品课程、…

【网易低代码】第3课,页面表格删除功能

你好&#xff01; 这是一个新课程 CodeWave网易低代码 通过自然语言交互式智能编程&#xff0c;同时利用机器学 习&#xff0c;帮助低代码开发者进一步降低使用门槛、提高应用开发效率 【网易低代码】第3课&#xff0c;页面表格删除功能 1.拖拽组件link链接到表格中&#xff0c…

航空航天混合动力(2)电动飞机发展中的电气连接挑战

航空航天混合动力(2)电动飞机发展中的电气连接挑战 1.概述2.更高的电压(千伏)和功率(兆瓦)2.缓解局部放电/电晕效应3.提高可靠性,更恶劣的环境,频繁的维护和检查,冲击和振动4.减重5.抗电弧跟踪和液压油阻力6.严格的可燃性,毒性和烟雾要求7.海拔和气压的影响8.工作温度范围…

RSA 非对称加密工具类

目录 Maven依赖RSA 非对称加密工具类效果图 Maven依赖 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.31</version></dependency>RSA 非对称加密工具类 import cn.hutool.core.c…

100个候选人,没一个能讲明白什么是自动化框架?

什么是自动化测试框架 01 什么是框架 框架是整个或部分系统的可重用设计&#xff0c;表现为一组抽象构件及构件实例间交互的方法。它规定了应用的体系结构&#xff0c;阐明了整个设计、协作构件之间的依赖关系、责任分配和控制流程&#xff0c;表现为一组抽象类以及其实例之间…