这是我之前创建的并且很少使用的文档。所以是的,我可以重写它,但是我想看看是否有一种方法可以使这一功能生效。
基本上,我正在删除旧数据,刷新数据并将新数据粘贴到A4中。进行研究时,有人说发生此错误是因为剪贴板中没有任何内容,在我的情况下这是不正确的,因为当我关闭它时,它告诉我剪贴板中有很多数据。
到上周为止,一切都很好。
删除数据后刷新该错误,并希望将新数据移至正确的报告后,就会发生错误:
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
代码如下:
Sub move_data()
'
' move_data Macro
'
'
Sheets("Table").Select
Range("A4").Select
Range(Selection, Selection.End(xlDown).Offset(-1, 0)).Select
Selection.Copy
Sheets("Call List").Select
Range("A4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Call Date").Select
Range("C20").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
Sheets("Call List").Select
Call test
End Sub
答案 0 :(得分:1)
尝试消除所有这样的选择和标签切换:
Sub move_data()
'
' move_data Macro
'
'
With ThisWorkbook
With .Sheets("Table").Range("A4")
.Resize(.End(xlDown).Offset(-1, 0).Row - .Row, 1).Copy
End With
.Sheets("Call List").Range("A4").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
.Sheets("Call Date").ListObject.QueryTable.Refresh BackgroundQuery:=False
.Sheets("Call List").Select
End With
Call test
End Sub
答案 1 :(得分:0)
这是整个代码。
Sub remove_old_data()
'
' remove_old_data Macro
'
'
Sheets("Call List").Select
Range("A4").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
Sheets("Macro Page").Select
End Sub
Sub move_data()
'
' move_data Macro
'
'
Sheets("Table").Select
Range("A4").Select
Range(Selection, Selection.End(xlDown).Offset(-1, 0)).Select
Selection.Copy
Sheets("Call List").Select
Range("A4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Call Date").Select
Range("C20").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
Sheets("Call List").Select
Call test
End Sub
Sub refresh_data()
'
' refresh_data Macro
'
'
Sheets("DL Data").Select
Range("B10").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
Sheets("Table").Select
Range("B23").Select
ActiveSheet.PivotTables("PivotTable2").PivotCache.Refresh
Sheets("Macro Page").Select
End Sub
Sub test()
'
' test Macro
'
'
ActiveWorkbook.Worksheets("Call List").ListObjects("Table3").Sort.SortFields. _
Clear
ActiveWorkbook.Worksheets("Call List").ListObjects("Table3").Sort.SortFields. _
Add Key:=Range("Table3[Balance]"), SortOn:=xlSortOnValues, Order:= _
xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Call List").ListObjects("Table3").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub