学AI代码笔记【007】号


  1. 2025年08月19日 星期二学AI代码笔记【007】号

主要内容

🔔

创建副本

创建副本 | WPS开放平台

  1. 官方代码,一个是创建全部内容的副本,一个是创建空表和视图的副本。区别就在于true和false。这里的创建副本,就是复制,所以用copy,很容易懂。

  1. 分别执行其中一条时,也比较容易

  1. 问ai还有没有其他的用处,一下子给出了五条。

  1. 继续,比如说我想建议一个“测试”的副本,里面复制全部内容

  1. 当复制仪表盘时,出现了一点问题,可以复制成功,但是提示初始化位置定位错误。官方的说明“复制的sheet为仪表盘时,此参数不传“,这句没搞懂。

  1. 想实现一个新的想法,问ai:复制副本,结合删除数据表的代码,当我运行这个代码时,删除第一个数据表之外的数据表,然后复制第一个数据表(可以作为临时表,用完了就删掉)

  1. 继续扩展一下思路:复制副本,结合删除数据表的代码,当我运行这个代码时,删除第一个数据表和备份表之外的数据表,并且把删除数据表中的数据,写入备份表中,然后复制第一个数据表(相当于临时表的数据,每次删除的时候,都备份)

  1. 难度太大,暂时搞不懂

删除的数据表名称写入备份表应该不难吧?

复制副本,结合删除数据表的代码,当我运行这个代码时,删除第一个数据表和备份表之外的数据表,并且把删除数据表的表名,新增写入备份表中的文本字段,然后复制第一个数据表

  1. 优化,这个默认的第一个和第二个不行(都没有实现)

  1. 实现了其中特定表不删除的功能,想要的功能没实现

关键代码

  1. 官方代码

function main() {
    // 复制全部内容
    Application.Sheets(1).Copy(true);
    // 仅复制空表和视图
    Application.Sheets(1).Copy(false);
}
main()
  1. 我想建议一个“测试”的副本,里面复制全部内容

function main() {
    // 获取当前激活的数据表
    const activeSheet = Application.Sheets(1); // 假设操作的是第一个数据表    
    // 复制全部内容并获取新副本
    const copiedSheet = activeSheet.Copy(true); // true 表示复制全部内容    
    // 为新副本设置名称为“测试”
    copiedSheet.Name = "测试"; // 设置副本名称
}
main();
  1. 仪表盘复制测试

function main() {
    // 获取当前激活的数据表
    const activeSheet = Application.Sheets(1); // 假设操作的是第一个数据表    
    // 复制全部内容并获取新副本
    const copiedSheet = activeSheet.Copy(); // true 表示复制全部内容    
    // 为新副本设置名称为“测试”
    copiedSheet.Name = "测"; // 设置副本名称
}
main();
  1. 复制副本,结合删除数据表的代码,当我运行这个代码时,删除第一个数据表之外的数据表,然后复制第一个数据表(空白表)

function main() {
    // 获取所有数据表的总数
    const sheetCount = Application.Sheets.Count; 
    
    // 遍历并删除第一个数据表之外的所有数据表
    for (let i = sheetCount; i > 1; i--) { 
        Application.Sheets.Delete(i); 
    }
    
    // 复制第一个数据表的副本
    const firstSheet = Application.Sheets(1); 
    const copiedSheet = firstSheet.Copy(false); 
    
    // 为新副本设置名称(可选)
    copiedSheet.Name = "副本-数据表 1"; 
}
main();
  1. 4的全部复制内容

function main() {
    // 获取所有数据表的总数
    const sheetCount = Application.Sheets.Count; 
    
    // 遍历并删除第一个数据表之外的所有数据表
    for (let i = sheetCount; i > 1; i--) { 
        Application.Sheets.Delete(i); 
    }
    
    // 复制第一个数据表的副本
    const firstSheet = Application.Sheets(1); 
    const copiedSheet = firstSheet.Copy(true); //全部复制
    
    // 为新副本设置名称(可选)
    copiedSheet.Name = "临时表"; 
}
main();
  1. 复制副本,结合删除数据表的代码,当我运行这个代码时,删除第一个数据表和备份表之外的数据表,并且把删除数据表中的数据,写入备份表中,然后复制第一个数据表

function main() {
    // 获取所有数据表的总数
    const sheetCount = Application.Sheets.Count; 
    
    // 假设第一个数据表为保留表,第二个数据表为备份表
    const firstSheet = Application.Sheets(1);
    const backupSheet = Application.Sheets(2);
    
    // 遍历并处理其余数据表
    for (let i = sheetCount; i > 2; i--) { 
        const currentSheet = Application.Sheets(i);
        
        // 将当前数据表的数据写入备份表
        const dataToBackup = currentSheet.Data;
        backupSheet.AppendData(dataToBackup); 
        
        // 删除当前数据表
        Application.Sheets.Delete(i); 
    }
    
    // 复制第一个数据表的副本
    const copiedSheet = firstSheet.Copy(false); 
    
    // 为新副本设置名称(可选)
    copiedSheet.Name = "测试"; 
}
main();
  1. 复制副本,结合删除数据表的代码,当我运行这个代码时,删除第一个数据表和备份表之外的数据表,并且把删除数据表的表名,新增写入备份表中的文本字段,然后复制第一个数据表

function main() {
    // 获取所有数据表的总数
    const sheetCount = Application.Sheets.Count; 
    
    // 假设第一个数据表为保留表,第二个数据表为备份表
    const firstSheet = Application.Sheets(1);
    const backupSheet = Application.Sheets(2);
    
    // 遍历并处理其余数据表
    for (let i = sheetCount; i > 2; i--) { 
        const currentSheet = Application.Sheets(i);
        
        // 获取当前数据表的表名
        const sheetName = currentSheet.Name;
        
        // 将表名作为文本字段写入备份表(假设备份表第一列为文本字段)
        const lastRow = backupSheet.Data.length + 1; // 获取备份表最后一行索引
        backupSheet.Data[lastRow][0] = sheetName; // 写入表名
        
        // 删除当前数据表
        Application.Sheets.Delete(i); 
    }
    
    // 复制第一个数据表的副本
    const copiedSheet = firstSheet.Copy(false); 
    
    // 为新副本设置名称(可选)
    copiedSheet.Name = "副本-数据表 1"; 
}
main();

多维表代码使用案例库

【1】多维表代码使用案例库


代码太多,写不下,放在那个导航里面

湖南省
浏览 1508
收藏
5
分享
5 +1
1
+1
全部评论 1
 
HC.旋
点赞支持
· 福建省
回复