欢迎光临散文网 会员登陆 & 注册

实例25-多种类型复制粘贴,实例26-对比两表不同 Excel表格VBA编程 代码分享

2023-03-06 17:05 作者:凌霄百科_Excel办公程序  | 我要投稿

实例25-多种类型复制粘贴


1

粘贴全部内容。

2

粘贴除边框外的全部内容。

3

将粘贴所有内容,并且将合并条件格式。

4

使用源主题粘贴全部内容。

5

粘贴复制的列宽。

6

粘贴批注。

7

粘贴复制的源格式。

8

粘贴公式。

9

粘贴公式和数字格式。

10

粘贴有效性。

11

粘贴值。

12

粘贴值和数字格式。

Private Sub CommandButton复制粘贴_Click()

'判断工作簿名,工作表名不为空

With ThisWorkbook.Worksheets("操作界面")

If Trim(.Cells(2, "C").Value) = "" Or Trim(.Cells(6, "C").Value) = "" Or Trim(.Cells(10, "C").Value) = "" Or Trim(.Cells(14, "C").Value) = "" Then

MsgBox "参数不能为空"

Exit Sub

End If

'On Error GoTo 处理出错

'定义变量

Dim wbname As String

wbname = Trim(.Cells(2, "C").Value)

Dim copyrange As String

copyrange = Trim(.Cells(6, "C").Value)

Dim copyposition As String

copyposition = Trim(.Cells(10, "C").Value)

Dim copytypenum As Integer

copytypenum = Trim(.Cells(14, "C").Value)

End With

'处理表格

With Workbooks(wbname)

'循环判断

Dim i

For i = 1 To .Worksheets.Count

ThisWorkbook.Worksheets("复制区域").Range(copyrange).Copy

Select Case copytypenum

Case 1

.Worksheets(i).Range(copyposition).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Case 2

.Worksheets(i).Range(copyposition).PasteSpecial Paste:=xlPasteAllExceptBorders, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Case 3

.Worksheets(i).Range(copyposition).PasteSpecial Paste:=xlPasteAllMergingConditionalFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Case 4

.Worksheets(i).Range(copyposition).PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Case 5

.Worksheets(i).Range(copyposition).PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Case 6

.Worksheets(i).Range(copyposition).PasteSpecial Paste:=xlPasteComments, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Case 7

.Worksheets(i).Range(copyposition).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Case 8

.Worksheets(i).Range(copyposition).PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Case 9

.Worksheets(i).Range(copyposition).PasteSpecial Paste:=xlPasteFormulasAndNumberFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Case 10

.Worksheets(i).Range(copyposition).PasteSpecial Paste:=xlPasteValidation, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Case 11

.Worksheets(i).Range(copyposition).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Case 12

.Worksheets(i).Range(copyposition).PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

End Select

Next i

End With

Workbooks(wbname).Save

MsgBox "处理完成"

Workbooks(wbname).Activate

Exit Sub

处理出错:

MsgBox Err.Description

End Sub

实例26-对比两表不同


Private Sub CommandButton对比_Click()

Dim comparerange As String

If ThisWorkbook.Worksheets("操作界面").Cells(2, "C").Value <> "" Then

comparerange = ThisWorkbook.Worksheets("操作界面").Cells(2, "C").Value

Else

MsgBox "对比区域地址不能为空"

Exit Sub

End If

'对比

Dim cellitem1

For Each cellitem1 In ThisWorkbook.Worksheets("表1").Range(comparerange)

If cellitem1.Value <> ThisWorkbook.Worksheets("表2").Range(cellitem1.Address).Value Then

'标记颜色

ThisWorkbook.Worksheets("表1").Range(cellitem1.Address).Interior.ColorIndex = 3

ThisWorkbook.Worksheets("表2").Range(cellitem1.Address).Interior.ColorIndex = 4

End If

Next cellitem1

MsgBox "对比完成"

End Sub



实例25-多种类型复制粘贴,实例26-对比两表不同 Excel表格VBA编程 代码分享的评论 (共 条)

分享到微博请遵守国家法律