function 新建工作簿()
{
let wb=Workbooks.Add();
wb.SaveAs("C:/Users/demo/Desktop/123/test.xlsx");
wb.Close();
// Workbooks.Add("C:/Users/demo/Desktop/123/工资表.xlsx")
}
function 删除文件(){
// Kill("C:/Users/demo/Desktop/123/test.xlsx");
Kill("C:/Users/demo/Desktop/123/*.txt")
}
function 新建工作簿(){
let strpath = ThisWorkbook.Path;
for(let datesV = 1 ;datesV<=12;datesV++){
let wb = Workbooks.Add(`${strpath}/工资表.xlsx`);//以工作表为模板
wb.SaveAs(`${strpath}/2023/${datesV}月.xlsx`);
wb.Close()
}
}
function 打开关闭工作簿(){
let wb=Workbooks.Open("D:\\WPS JS宏视频教程\\第3章\\3-3\\demo.xlsx");
Range("a1:d10").Value2=100;
// wb.Save();
wb.Close(true);
}
function 取文件名(){
let strpath = Dir(ThisWorkbook.Path+"/产品/*.xls*")
while(strpath != ""){
console.log(strpath);
strpath = Dir();
}
}
function 汇总每个工作簿中的数据(){
let strPath=Workbooks.Item("3-5.xlsm").Path;
let strFileName=Dir(`${strPath}\\产品\\*.xlsx`);
let intTotal=0;
while (strFileName!=""){
let wb=Workbooks.Open(`${strPath}\\产品\\${strFileName}`);
intTotal +=wb.Sheets(1).Range("b14").Value();
wb.Close(false);
strFileName=Dir();
}
alert(`总金额为:${intTotal}`);
function 判断工作簿是否打开(){
let intNum=0
for (let wb of Workbooks){
if (wb.Name=="调查表.xlsx"){
intNum++;
}
}
switch (intNum){
case 0:
Workbooks.Open("D:/WPS JS宏视频教程/第3章/3-6/调查表.xlsx");
break;
case 1:
alert("调查表.xlsx,已打开!")
break;
}
}
新建:
Sheets.Add(Before, After, Count, Type)
可以创建的类型为:xlWorksheet(工作表)、xlChart(图表)、xlExcel4MacroSheet(宏表) 或 xlExcel4IntlMacroSheet(支持多语言的宏表)。
以新建工作表为例,讲解一下JS宏中的函数(也就是方法),它的使用方法。
1.如果参数中带有?,表示可选参数。否则表示必选参数。
2.可选参数如果是最后一个位置,可以忽略不写。
3.可选参数如果不在最后,不能忽略不写,必需写undefined。
--------------------------
删除:
ActiveWindow.SelectedSheets.Delete //删除已经选择的工作表
Sheets(n).Delete(); //删除指定的单个工作表
注意:工作表可以用索引,也可以用名称。
function Macro2()
{
let u=undefined;
Sheets.Add(u, Sheets("Sheet15"), 1,u);
}
function Macro1()
{
// Sheets.Item("Chart1").Select(false);
Sheets(2).Delete();
// Sheets.Item("Sheet2").Activate();
// ActiveWindow.SelectedSheets.Delete();
}
function 提取工作簿和工作表名称(){
let wbOpen=Workbooks.Item("3-8.xlsm");
let strFileName=Dir(`${wbOpen.Path}\\销售表\\*.xlsx`);
let intRowNum=1;
while (strFileName!=""){
let wb=Workbooks.Open(`${wbOpen.Path}\\销售表\\${strFileName}`)
for (let ws of wb.Sheets){
wbOpen.Sheets(1).Cells(intRowNum,"A").Value2=wb.Name;
wbOpen.Sheets(1).Cells(intRowNum,"B").Value2=ws.Name;
intRowNum++;
}
wb.Close(false);
strFileName=Dir();
}
}
function 工作表的复制和移动(){
//移动(move)复制(copy),两个参数为before和after
//同一个工作簿下工作表的移动与复制
Sheets("工资表").Move(Sheets("other"));
Sheets("工资表").Move(undefined,Sheets("other"));
//不同工作簿下工作表的移动与复制
let wbSoure=Workbooks.Item("3-9.xlsm");
let wbTarget=Workbooks.Item("demo.xlsx");
wbSoure.Sheets("工资表").Copy(wbTarget.Sheets(1))
wbSoure.Sheets("工资表").Copy(undefined,wbTarget.Sheets(2))
//工作表的移动复制到新工作簿
Sheets(1).Copy();
}
function 批量创建工作表(){
for (let intYear=2020;intYear<=2023;intYear++){
let wbNew=Workbooks.Add();
for (let intMonth=12;intMonth>=1;intMonth--){
let wsNew=wbNew.Sheets.Add();
wsNew.Name=`${intMonth}月`;
}
wbNew.Sheets(wbNew.Sheets.Count).Delete();
wbNew.SaveAs(`${Workbooks.Item("3-10.xlsm").Path}\\年份\\${intYear}年.xlsx`);
wbNew.Close();
}
}
function 工作表拆分到多个工作簿(){
for (let ws of Sheets){
if (ws.Name.split("-")[1]=="A"){//拆分成数组
ws.Copy();
ActiveWorkbook.SaveAs(`${Workbooks("3-11.xlsm").Path}\\类别\\${ws.Name}.xlsx`);
ActiveWorkbook.Close();
}
}
}
JavaScript split() 方法
function 将月工作表按季拆分到工作簿(){
for (let intQ of [1,2,3,4]){
let wb=Workbooks.Add();
wb.SaveAs(`${Workbooks.Item("3-12.xlsm").Path}\\季度\\第${intQ}季度.xlsx`);
}
for (let intNum=1;intNum<=12;intNum++){
let intN=parseInt((intNum+2)/3);
let wbTarget=Workbooks.Item(`第${intN}季度.xlsx`);
let wbSource=Workbooks.Item("3-12.xlsm");
wbSource.Sheets(intNum).Copy(undefined,wbTarget.Sheets(wbTarget.Sheets.Count));
}
for (let wb of Workbooks){
if (wb.Name!="3-12.xlsm"){
wb.Sheets(1).Delete();
wb.Close(true);
}
}
}
JavaScript parseInt() 函数
function 向单元格写入数据的几种方法(){
//1
Sheets(1).Range("a4:d5").Copy(Sheets(2).Range("a1")
//2
Sheets(1).Range("a4:d5").Copy();
Sheets(2).Range("a4").PasteSpecial(xlPasteValuesAndNumberFormats);
//3
Sheets(2).Range("a9:d11").Value2=Sheets(1).Range("a4:d5").Value()
}
1.Range.Range 在原来位置重定位
2.Range.EntireRow 单元格所在行
3.Range.EntireColumn 单元格所在列
function test(){
Range("a5").Range("a5").Range("b3").Select();
Range("a5:a10").EntireRow.Select()
Range("a5:c10").EntireColumn.Select()
Range("c5:c10").EntireColumn.Range("a1:a2").Select()
}
Range.Item 偏移方法-1
Range.Offset 偏移方法-2(可以返回Range对象)
Range.Resize 区域重选(可以返回Range对象)
function test(){
Range("b2").Item(2,3).Select();
Range("b2:c4")(2,3).Select();
Range("b2").Offset(2,3).Select();
Range("b2:c4").Offset(2,3).Select();
Range("b2").Resize(2,3).Select();
Range("b2:c4").Resize(2,3).Select();
}
function test(){
Range("a2:d11").Interior.Pattern = xlPatternNone;//清除色彩
for (let rngCell of Range("d2:d11")){
if (rngCell.Value()>0){
// rngCell.EntireRow.Range("a1:d1").Interior.ColorIndex=8;
rngCell.Offset(0,-3).Resize(1,4).Interior.ColorIndex=8;
}
}
}
function test(){
let intRowNum=1;
let intVal=Number(InputBox("请输入筛选的最低值:"));
Range("g2:j99").Clear();
for (let rngCell of Range("d2:d11")){
if (rngCell.Value()>=intVal){
intRowNum++;
rngCell.Offset(0,-3).Resize(1,4).Copy(Range(`g${intRowNum}`));
}
}
}
Range.End(xlUp) //向上
Range.End(xlDown) //向下
Range.End(xlToLeft) //向左
Range.End(xlToRight) //向右
function test(){
Range("c8").End(xlDown).Select();
Range("c8").End(xlUp).Select();
Range("c8").End(xlToLeft).Select();
Range("c8").End(xlToRight).Select();
Range("a1",Range("d"+Rows.Count).End(xlUp)).Select();
a =Cells(Rows.Count,"A").End(xlUp).Row
}
Range.CurrentRegion //获取Range周围所有单元格区域
Sheet.UsedRange //获取Sheet表所有已使用单元格区域
function test(){
Range("g2").CurrentRegion.Select();
Sheets(1).UsedRange.Select();
}
function test(){
Union(Range("a2"),Range("a9")).Select();
Intersect(Range("a1").CurrentRegion,Range("a2:d999")).Select();
Intersect(Sheets(1).UsedRange,Range("a2:d999")).Select();
}
MsoFileDialogType 可为以下 MsoFileDialogType 常量之一。
1.msoFileDialogFilePicker 允许用户选择文件。
2.msoFileDialogFolderPicker 允许用户选择一个文件夹。
3.msoFileDialogOpen 允许用户打开文件。
4.msoFileDialogSaveAs 允许用户保存一个文件。
1、2只能选择文件或文件夹,而3、4则可以通过Execute方法来实际打开或者保存文件。
function 选择文件(){
var f=Application.FileDialog(msoFileDialogFilePicker);
f.Show();
Console.log(f.SelectedItems(1));
Console.log(f.SelectedItems(2));//只选择一个文件会出错
}
新建:MkDir ("C:\NewFolder") //新建文件夹(如果存在则提示错误)
删除文件:Kill ("C:\OldFolder\OldFile.ext") //删除文件(支持同配符)
删除文件夹:RmDir("C:\OldFolder") //删除文件夹(如果文件夹不存在,或者文件夹不为空均会提示错误)
移动文件:Name "C:\OldFolder\OldFile.ext" As "C:\NewFolder\NewFile.ext" //(暂时不可用)
复制文件:FileCopy ("C:\OldFolder\OldFile.ext", "C:\NewFolder\NewFile.ext")
function test(){
// MkDir("D:\\WPS JS宏视频教程\\第3章\\3-22\\demo");
// RmDir("D:\\WPS JS宏视频教程\\第3章\\3-22\\demo");
FileCopy(
"D:/WPS JS宏视频教程/第3章/3-22/123/demo.xlsx",
"D:/WPS JS宏视频教程/第3章/3-22/456/999.xlsx"
)
}