Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
excel vba在最后一个空行上从sheet1和past剪切到sheet2_Excel_Vba_Paste - Fatal编程技术网

excel vba在最后一个空行上从sheet1和past剪切到sheet2

excel vba在最后一个空行上从sheet1和past剪切到sheet2,excel,vba,paste,Excel,Vba,Paste,我不明白为什么这个代码不起作用。 在活页1上,它从第二行选择,直到最后一行不为空并剪切。 在sheet2上,它转到第一个空行,但由于某些原因,它没有粘贴:-( 备份(“剪切”)行 选项显式 子backupdatea() 将wb设置为工作簿:设置wb=ThisWorkbook 将sws标注为工作表:设置sws=wb.工作表(“Protocolo diário”) 将sLastRow调整为Long:sLastRow=sws.Cells(sws.Rows.Count,1).End(xlUp).Row

我不明白为什么这个代码不起作用。 在活页1上,它从第二行选择,直到最后一行不为空并剪切。 在sheet2上,它转到第一个空行,但由于某些原因,它没有粘贴:-(

备份(“剪切”)行
选项显式
子backupdatea()
将wb设置为工作簿:设置wb=ThisWorkbook
将sws标注为工作表:设置sws=wb.工作表(“Protocolo diário”)
将sLastRow调整为Long:sLastRow=sws.Cells(sws.Rows.Count,1).End(xlUp).Row
将srg设置为范围:设置srg=sws.行(2).调整大小(sLastRow-1)
将dws标注为工作表:设置dws=wb.工作表(“原型系统”)
将dLastRow变长:dLastRow=dws.Cells(dws.Rows.Count,1).End(xlUp).Row
将drg设置为范围:设置drg=dws.Rows(dLastRow+1)。调整大小(srg.Rows.Count)
图纸值=图纸值
srg.ClearContents
“或者:
'srg.Delete
端接头

你不能
Cut
然后
PasteSpecial
…这是不可能的。手动尝试一下,你就会看到。如果原始数据只是值,那么最好指定
Cut
的目标参数。如果原始数据是公式,那么你可以复制/PasteSpecial值,然后清除原始数据。它崩溃了
Dim srg As Range:Set srg=sws.Rows(2).Resize(sLastRow-1)
错误号和描述是什么?如果第1列(
A
)为空,请在代码的前一行选择另一列。当复制到第二页时,原始页上的日期(DD/MM/yyyyy)更改为(MM/DD/yyyyy)时,我面临问题。
Sub Macro1()

     Application.ScreenUpdating = False
     Application.Calculation = xlCalculationManual
     Application.EnableEvents = False
     
     Application.CutCopyMode = False
     
     ThisWorkbook.Sheets("Protocolo diário").Activate
     ActiveSheet.Rows("2:2").Select
     Range(Selection, Selection.End(xlDown)).Cut
    
     ThisWorkbook.Sheets("Protocolo geral").Activate
     ActiveSheet.Range("A1").End(xlDown).Offset(1, 0).Select
     Selection.PasteSpecial xlPasteValues
     
     Application.CutCopyMode = False
     
     ThisWorkbook.Sheets("Protocolo diário").Rows("2:" & Rows.Count).ClearContents
     
     Application.CutCopyMode = False
     
     Application.ScreenUpdating = True
     Application.Calculation = xlCalculationAutomatic
     Application.EnableEvents = True
    
End Sub