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