Excel常见宏(简洁版)(5)

2019-04-21 19:01

End Sub 需求说明:

'复制当前工作簿的“报表”工作表到“临时”工作簿为“001”表。

'如果“临时”工作簿未打开,就创建新工作簿为“临时”并在其中加入“001”表; '如果“临时”工作簿已经打开,就直接加入“001”表。

'如果打开的“临时”工作簿中已经有“001”表,就报错退出。 '帖子地址:

http://club.excelhome.net/dispbbs.asp?boardid=2&replyid=875804&id=245219&page=1&skin=0&Star=2

删除指定文件

Sub 删除指定文件() Kill \信件\\1.xls\End Sub

合并A1至C1的内容写到D15单元的批注中

?http://club.excelhome.net/dispbbs.asp?boardid=2&id=251887 northwolves版主 Sub 将A1至C1的内容写到D15单元的批注中() [iv1:iv12] = \

[d15].AddComment Join(Application.Transpose([iv1:iv12]), vbCrLf) [iv1:iv12] = \

[d15].Comment.Visible = True

[d15].Comment.Shape.Height = 100 End Sub 自动重算

Sub 自动重算()

With Application

.Calculation = xlAutomatic End With End Sub 手动重算

Sub 手动重算()

With Application

.Calculation = xlManual End With End Sub

调整选中对象中的文字

Sub 调整选中对象中的文字() '文字居中、自动调整大小 With Selection

.HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .ReadingOrder = xlContext .Orientation = xlHorizontal .AutoSize = True .AddIndent = False End With End Sub

去除指定范围内的对象

Sub 去除指定范围内的对象() Dim p As Shape

Set My = Worksheets(\工作表名\ For Each p In My.Shapes

If Not Application.Intersect(p.TopLeftCell, Range(\范围\ Next End Sub

更新透视表数据项

Sub DeleteMissingItems2002All()

'防止数据透视表中显示无用的数据项 '在 Excel 2002 或更高版本中 '如果无用的数据项已经存在, '运行这个宏可以更新 Dim pt As PivotTable Dim ws As Worksheet

For Each ws In ActiveWorkbook.Worksheets For Each pt In ws.PivotTables

pt.PivotCache.MissingItemsLimit = xlMissingItemsNone Next pt Next ws

End Sub

将全部工作表名称写到A列 Sub 将全部表名称写到A列() k = 1

For Each Sht In Sheets

Cells(k + 1, 1) = Sht.Name '指定写入的行和列 k = k + 1 Next End Sub

为当前选定的多单元插入指定名称

Sub 为当前选定的多单元插入指定名称() Selection.Name = \临时\

ActiveWorkbook.Names.Add Name:=\临时\可以 End Sub

删除全部名称

Sub 删除全部名称() On Error Resume Next Dim l As Integer

l = ActiveWorkbook.Names.Count For i = l To 1 Step -1

ActiveWorkbook.Names(i).Delete Next End Sub

以指定区域为表目录补充新表

Sub 以指定区域为表目录补充新表() Dim dic As Object, sh As Worksheet Dim arr, item

arr = Range(\

Set dic = CreateObject(\ For Each sh In ThisWorkbook.Worksheets dic.Add sh.Name, \ Next

For Each item In arr

If item <> \ With ThisWorkbook.Worksheets.Add .Name = item End With End If Next

Set dic = Nothing End Sub

'或者换用这行代码也 按A列数据批量修改表名称

Sub 按A列数据批量修改表名称() Dim i%

For i = 1 To Sheets.Count - 1

Sheets(i).Name = Cells(i + 1, 1).Text Next End Sub

按A列数据批量创建新表(控件按钮代码) Private Sub CommandButton1_Click() On Error Resume Next Dim i%, j%

For i = 1 To [a65536].End(xlUp).Row For j = 2 To Sheets.Count

If Cells(i, 1) = Sheets(j).Name Then Exit For End If Next

Sheets.Add(after:=Sheets(Sheets.Count)).Name = Cells(i, 1) Next End Sub

指定单元显示光标位置内容(工作表代码)

Private Sub Worksheet_SelectionChange(ByVal T As Range) Sheets(1).Range(\End Sub

每编辑一个单元保存文件

Private Sub Worksheet_Change(ByVal Target As Range) ThisWorkbook.Save End Sub

指定允许编辑区域

Sub 指定允许编辑区域()

ActiveSheet.ScrollArea = \End Sub

解除允许编辑区域限制

Sub 解除允许编辑区域限制() ActiveSheet.ScrollArea = \End Sub 删除指定行

Sub 删除指定行()

Workbooks(\临时表\表2\End Sub

删除A列为指定内容的行

Sub 删除A列为指定内容的行() Dim a, b As Integer

a = Sheet1.[a65536].End(xlUp).Row For b = a To 2 Step -1

If Cells(b, 1).Value = \删除\ Rows(b).Delete End If Next End Sub

删除A列非数字单元行

Sub 删除A列非数字单元行() i = [a65536].End(xlUp).Row

Range(\End Sub

有条件删除当前行

Sub 有条件删除当前行()

If [A1] = 2 Or [B1] = \删除\Selection.Delete Shift:=xlUp End If End Sub 选择下一行

Sub 选择下一行()

ActiveCell.Offset(1, 0).Rows(\End Sub

选择第5行开始所有数据行

Sub 选择第5行开始所有数据行A() Dim i%

i = Cells.Find(\SearchDirection:=xlPrevious).EntireRow.Row Rows(\ End Sub

Sub 选择第5行开始所有数据行B()

Rows(\ End Sub

选择光标或选区所在行

Sub 选择光标或选区所在行() Selection.EntireRow.Select End Sub

选择光标或选区所在列

Sub 选择光标或选区所在列() Selection.EntireColumn.Select End Sub

光标定位到名称指定位置 Sub 定位()

Application.Goto Range(Evaluate(\名称\) End Sub

选择名称定义的数据区

Sub 选择名称定义的数据区()

[数据区].Select '插入名称要使用INDIRECT函数 'Range(\数据区\ 或者 'Sheet1.Range(\数据区\或者 End Sub

选择到指定列的最后行

Sub 选择到指定列的最后行()

Range(\End Sub

将Sheet1的A列的非空值写到Sheet2的A列

Sub 将Sheet1的A列的非空值写到Sheet2的A列()

Sheet1.Columns(\End Sub

将名称1的数据写到名称2 Sub Macro2()

Range(\位置2\位置1\End Sub 单元反选

Sub 单元反选()

Application.DisplayAlerts = False Application.ScreenUpdating = False

Dim raddress As String, taddress As String raddress = Selection.Address

taddress = ActiveSheet.UsedRange.Address With Sheets.Add .Range(taddress) = 0 .Range(raddress) = \

raddress = .Range(taddress).SpecialCells(xlCellTypeConstants, 1).Address .Delete End With

ActiveSheet.Range(raddress).Select Application.ScreenUpdating = True End Sub

指定区域单元双击数据累加(工作表代码)

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Not Application.Intersect([A1:Y100], Target) Is Nothing Then oldvalue = Val(Target.Value)

inputvalue = InputBox(\请输入数量,按ENTER键确认!\数值累加器\Target.Value = oldvalue + inputvalue End If End Sub

选择单元区域触发事件(工作表代码)

Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address = \ MsgBox \你选择了$A$1:$B$2单元\End If End Sub

当修改指定单元内容时自动执行宏(工作表代码) Private Sub Worksheet_Change(ByVal Target As Range) If Not Application.Intersect(Target, [B3:B4]) Is Nothing Then 重排窗口 End If End Sub

被指定单元内容限制执行宏 Sub 被指定单元限制执行宏()

If Range(\关闭\窗口 End Sub

双击单元隐藏该行(工作表代码)

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Rows(Target.Row).Hidden = True End Sub

高亮显示行(工作表代码)

Private Sub Worksheet_SelectionChange(ByVal Target As Range) Cells.Interior.ColorIndex = 2

Rows(\ '保持1至2行的颜色推荐39,22,40,

Rows(Target.Row).Interior.ColorIndex = 35 '高亮推荐颜色35,20,24,34,37,40,15 End Sub

高亮显示行和列(工作表代码)

Private Sub Worksheet_SelectionChange(ByVal Target As Range) Cells.Interior.ColorIndex = xlNone

Rows(Target.Row).Interior.ColorIndex = 34

Columns(Target.Column).Interior.ColorIndex = 34 End Sub

为指定工作表设置滚动范围(工作簿代码)

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)


Excel常见宏(简洁版)(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:网络舆情应对处置的基本方法与实战技巧

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: