当前位置:首页教育技巧excel技巧excel表格制作

excel表格怎么编写脚本

减小字体 增大字体 2025-12-15 16:55:34


1.求写一个EXCEL脚本

用字典解决问题还是比较好,代码也比较简洁,这里没有直接在字典中抽取各个关键字和条目,而是采用了常规的把字典关键字和条目导出到数组,再赋值给单元格的方法。

Sub abc() Dim a, i%, j%, t%, d, q, k Set d = CreateObject("Scripting.dictionary") a = ActiveSheet.UsedRange For i = 1 To UBound(a) For j = 2 To UBound(a, 2) Step 2 If a(i, j) <> "" Then If d.exists(a(i, j)) Then d(a(i, j)) = d(a(i, j)) & "/" & a(i, j - 1) Else d.Add a(i, j), a(i, j - 1) End If Next q = d.items: k = d.keys For j = 1 To d.Count Cells(i, 15 + j + t) = q(j - 1) Cells(i, 16 + j + t) = k(j - 1) t = t + 1 Next d.RemoveAll: t = 0 NextEnd Sub。

2.怎么利用按键精灵编写一个脚本程序,使excel表里面的数据,依次录

这个很费时间的,给你一段代码参考吧:call Plugin.Office.OpenXls("d:\001.xls")For i= 1 to 10text = Plugin.Office.ReadXls(1, i, 1)Call Plugin.File.WriteFileEx("d:001.txt","text")NextCall Plugin.Office.CloseXls()按键精灵是一款模拟鼠标键盘动作的软件。

通过制作脚本,可以让按键精灵代替双手,自动执行一系列鼠标键盘动作。按键精灵简单易用,不需要任何编程知识就可以作出功能强大的脚本。

只要在电脑前用双手可以完成的动作,按键精灵都可以替代完成。

3.怎么用EXCEL的VBA脚本进行行的操作

Alt+F11,输入以下代码便可:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

For i = 1 To 100 '获取第一行的单元格数量

If Cells(1, i).Value = "" Then Exit For

a = a + 1

Next i

For i = 1 To 100 '获取第二行的单元格数量

If Cells(2, i).Value = "" Then Exit For

b = b + 1

Next i

For i = 1 To b

For j = 1 To a

Cells(3, k + 1) = Cells(2, i) & "->" & Cells(1, j)

k = k + 1

Next j

Next i

End Sub

结果:

4.在Excel的实际应用中,请问:1.怎样编写“宏”代码

楼上的回答很好。

当然有相应的书,书店有,网上也能搜索到。我特别要说的第一点是:VBA本身的帮助系统非常全面,我记性不好,几乎每次写VBA的时候都要查一下手册。

第二点,许多详细的语句是可以通过录制宏来得到例子代码,其实我们要写的许多脚本是可以录制的,然后修改一下,比如用for或者while写个循环来往复做。VBA的语法基本上和VB差不多,只要知道一些EXCEL的对象结构就好编程,下面是我写的一个例子代码,本程序是我工作需要的一个任务抽象出来的:把基层公司上报的多个EXCEL文件里面某个表的内容串起来,本来也可以手工去复制粘贴,但是分公司数十个,个别公司更新数据的时候很麻烦,你看看,可以对“宏”有个直观的认识:Private Sub CommandButton1_Click() If Cells(1, 1) <> "结果:" Then Cells(1, 2) = "A1的内容是否被修改,程序不敢贸然转换!" Exit Sub End If For Each w In Workbooks If w.Name = Cells(6, 2) Then Cells(1, 2) = "先关闭要导入的文件,如果是本文件名字与要导入的相同,请关闭后充命名再打开!" Exit Sub End If Next w If MsgBox("程序无法判断是否重复导入,请慎重选择!", vbYesNo, "警告") <> vbYes Then Exit Sub Cells(1, 2) = "开始转换,耐心等待。

" '定位本表的指定工作薄到变量 target_sheet 里面 For Each target_sheet In Sheets If target_sheet.Name = Cells(2, 2) Then Exit For Next target_sheet If target_sheet.Name <> Cells(2, 2) Then Cells(1, 2) = "本工作薄里面没有找到指定的工作表[" & Cells(2, 2) & "]。" End If '找到本工作薄指定工作表的最后一行 k = Cells(3, 2) While target_sheet.Cells(k, 1) <> "" Or target_sheet.Cells(k, 2) <> "" Or target_sheet.Cells(k, 3) <> "" k = k + 1 Wend i = 7 ok_list = "" While Cells(i, 3) <> "" If Cells(i, 3) = "1" Then 'f = MsgBox(Cells(i, 2), vbYesNo, "即将转换的文件。

") st = Dir(Cells(i, 2)) If st = "" Then Cells(1, 2) = "文件[" & Cells(i, 2) & "]不存在,转换终止" Exit Sub End If '打开文件,打开后ActiveWorkbook指向新的工作薄 Workbooks.Open Cells(i, 2) '定位新打开的工作薄 'For Each new_book In Workbooks ' If new_book.Name = Cells(i, 2) Then Exit For 'Next new_book '检测工作表是否存在 For Each source_sheet In ActiveWorkbook.Sheets If source_sheet.Name = Cells(2, 2) Then Exit For Next source_sheet If source_sheet.Name <> Cells(2, 2) Then ActiveWorkbook.Close Cells(1, 2) = "文件[" & Cells(i, 2) & "]中不存在指定的工作表[" & Cells(2, 2) & "],转换终止" Exit Sub End If '循环导入所有行 j = Cells(3, 2) While source_sheet.Cells(j, 1) <> "" Or source_sheet.Cells(j, 2) <> "" Or source_sheet.Cells(j, 3) <> "" '导入一行 source_sheet.Rows(j).Copy target_sheet.Rows(k) 'For x = 1 To Cells(4, 2) ' target_sheet.Cells(k, x) = source_sheet.Cells(j, x) 'Next x j = j + 1 k = k + 1 Wend ActiveWorkbook.Close If ok_list = "" Then ok_list = Cells(i, 1) Else ok_list = ok_list & "、" & Cells(i, 1) End If Cells(i, 3) = 0 Cells(i, 4) = "√" End If i = i + 1 Wend Cells(1, 2) = "恭喜你,本次转换完成:" & ok_listEnd Sub。

评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

【免责声明】本站信息来自网友投稿及网络整理,内容仅供参考,如果有错误请反馈给我们及时更正,对文中内容的真实性和完整性本站不提供任何保证,不承但任何责任。
版权所有:学窍知识网 Copyright © 2011-2026 www.at317.com All Rights Reserved .