Excel 2007 简单复制和粘贴 vba 在 excel 2016 中不起作用
Excel 2007 simple copy and paste vba not working in excel 2016
我整理了一个审计工作簿,它应该将一些隐藏的单元格复制并粘贴到一个隐藏的数据存储 sheet 中,然后隐藏 sheet 中的集体数据用于 KPI 报告。
问题是我在 Excel 2007 年将它放在一起,它在其中完美运行,但现在需要在 Excel 2016 年使用它。
我是运行来自按钮的宏,如果按下按钮它会复制数据并选择隐藏的字段sheet但不会粘贴,也不会出现错误对话框.
当我在 vba 编辑器中单步执行代码时,它工作正常,但不是从按钮,尽管按钮链接到代码。我有点迷茫或不知道如何更正代码。
代码如下:
Sub CopyPhoneAuditToDB()
'
'
' Copy Phone Audit To DB
'
Application.ScreenUpdating = False
Sheets("Data Phone").Visible = xlSheetVisible
Sheets("Data Phone").Unprotect
Range("E49:T49").Select
Selection.Copy
Sheets("Data Phone").Select
Range("A2").Select
Cells(Rows.Count, "A").End(xlUp).Offset(1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveSheet.Protect
Sheets("Phone Audit").Select
Range("H5:J5").Select
Sheets("Data Phone").Visible = xlSheetVeryHidden
ActiveWorkbook.Save
End Sub
请告诉我这是否适合您:
Option Explicit
Sub CopyPhoneAuditToDB()
Application.ScreenUpdating = False
With Sheets("Data Phone")
.Visible = xlSheetVeryHidden
.Unprotect
Sheets("Phone Audit").Range("E49:T49").Copy
.Cells(.Rows.Count, "A").End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
.Protect
End With
With Sheets("Phone Audit")
.Activate
.Range("H5:J5").Select
End With
Application.ScreenUpdating = True
ActiveWorkbook.Save
End Sub
我发现了问题,其中 Sheets("Data Phone").Visible = xlSheetVisible
Sheets("Data Phone").Unprotect
将焦点从 sheet 转移到了 运行 来自 Phone Audit
它很可能是在复制 E49:T49 来自 Data Phone
sheet.
请参阅以下代码,其中包含一个新行以将焦点带回 Phone Audit
sheet。
Sub CopyPhoneAuditToDB()
'
'
' Copy Phone Audit To DB
'
Application.ScreenUpdating = False
Sheets("Data Phone").Visible = xlSheetVisible
Sheets("Data Phone").Unprotect
Sheets("Phone Audit").Activate '***************
Range("E49:T49").Select
Selection.Copy
Sheets("Data Phone").Activate
Range("A2").Select
Cells(Rows.Count, "A").End(xlUp).Offset(1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveSheet.Protect
Sheets("Phone Audit").Activate
Range("H5:J5").Select
Sheets("Data Phone").Visible = xlSheetVeryHidden
ActiveWorkbook.Save
End Sub
干杯
约翰
我整理了一个审计工作簿,它应该将一些隐藏的单元格复制并粘贴到一个隐藏的数据存储 sheet 中,然后隐藏 sheet 中的集体数据用于 KPI 报告。
问题是我在 Excel 2007 年将它放在一起,它在其中完美运行,但现在需要在 Excel 2016 年使用它。
我是运行来自按钮的宏,如果按下按钮它会复制数据并选择隐藏的字段sheet但不会粘贴,也不会出现错误对话框.
当我在 vba 编辑器中单步执行代码时,它工作正常,但不是从按钮,尽管按钮链接到代码。我有点迷茫或不知道如何更正代码。
代码如下:
Sub CopyPhoneAuditToDB()
'
'
' Copy Phone Audit To DB
'
Application.ScreenUpdating = False
Sheets("Data Phone").Visible = xlSheetVisible
Sheets("Data Phone").Unprotect
Range("E49:T49").Select
Selection.Copy
Sheets("Data Phone").Select
Range("A2").Select
Cells(Rows.Count, "A").End(xlUp).Offset(1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveSheet.Protect
Sheets("Phone Audit").Select
Range("H5:J5").Select
Sheets("Data Phone").Visible = xlSheetVeryHidden
ActiveWorkbook.Save
End Sub
请告诉我这是否适合您:
Option Explicit
Sub CopyPhoneAuditToDB()
Application.ScreenUpdating = False
With Sheets("Data Phone")
.Visible = xlSheetVeryHidden
.Unprotect
Sheets("Phone Audit").Range("E49:T49").Copy
.Cells(.Rows.Count, "A").End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
.Protect
End With
With Sheets("Phone Audit")
.Activate
.Range("H5:J5").Select
End With
Application.ScreenUpdating = True
ActiveWorkbook.Save
End Sub
我发现了问题,其中 Sheets("Data Phone").Visible = xlSheetVisible
Sheets("Data Phone").Unprotect
将焦点从 sheet 转移到了 运行 来自 Phone Audit
它很可能是在复制 E49:T49 来自 Data Phone
sheet.
请参阅以下代码,其中包含一个新行以将焦点带回 Phone Audit
sheet。
Sub CopyPhoneAuditToDB()
'
'
' Copy Phone Audit To DB
'
Application.ScreenUpdating = False
Sheets("Data Phone").Visible = xlSheetVisible
Sheets("Data Phone").Unprotect
Sheets("Phone Audit").Activate '***************
Range("E49:T49").Select
Selection.Copy
Sheets("Data Phone").Activate
Range("A2").Select
Cells(Rows.Count, "A").End(xlUp).Offset(1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveSheet.Protect
Sheets("Phone Audit").Activate
Range("H5:J5").Select
Sheets("Data Phone").Visible = xlSheetVeryHidden
ActiveWorkbook.Save
End Sub
干杯
约翰