Excel 2007简单复制和粘贴VBA不能在Excel 2016中工作

我已经把什么是审计工作簿,应该复制和粘贴一些隐藏的单元格到一个隐藏的数据存储工作表中隐藏的表单中的集体数据,然后用于KPI报告。

问题是,我把它放在Excel 2007中,它完美的工作,但现在需要在Excel 2016中使用。

我从一个button运行macros,如果按下button它复制数据,并select隐藏表中的字段,但不粘贴,也没有错误对话。

当我通过vba编辑器中的代码,它工作正常,但不是从button,尽pipebutton链接到代码。 我有点迷路了,或者该怎么办,因为我不知道如何更正代码。

代码如下:

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重点远离它从Phone Audit运行的工作表,它是更可能复制E49:T49从Data Phone表。

请参阅下面的代码,其中包含一个新行,将焦点带回“ Phone Audit表。

 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 

干杯

约翰