Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.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
Vba 选择自动填充到其他工作表中_Vba_Excel - Fatal编程技术网

Vba 选择自动填充到其他工作表中

Vba 选择自动填充到其他工作表中,vba,excel,Vba,Excel,下面的代码在我的工作表1中运行良好。但是我想把数据从一张纸转移到另一张纸上 Sub Data_Transfer() Dim rowcount As Integer Sheets("Eingabe").Select ' Whatever your sheet is rowcount = 4 rowcount = Application.CountA(Range("A:A")) + 1 'get end range ActiveSheet.Unprotect

下面的代码在我的工作表1中运行良好。但是我想把数据从一张纸转移到另一张纸上

Sub Data_Transfer()
    Dim rowcount As Integer
    Sheets("Eingabe").Select ' Whatever your sheet is
    rowcount = 4
    rowcount = Application.CountA(Range("A:A")) + 1 'get end range

    ActiveSheet.Unprotect 123

    Cells(5, 2).Select 'select the start cell
    'autofill to rowcount
    Selection.AutoFill Destination:=Range("B5:B" & rowcount), Type:=xlFillDefault

    ActiveSheet.Protect 123
End Sub
目的地的语法如何?我试过:

Set fillRange = Worksheets("MDB_to_pA_Dispodaten").Range("B5:B" & rowcount)
Selection.AutoFill Destination:=fillRange, Type:=xlFillDefault
但它不起作用

编辑: -->无法执行范围对象的自动填充方法。 错误1004

编辑2: 我需要的是:

Sub Daten_Transfer()
    Range("A5").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range("A5:X33").Select
    Selection.Copy
    Sheets("MDB_to_pA_Dispodaten").Select
    Range("A2").Select
    ActiveSheet.Paste
    Range("A2").Select
End Sub

但我需要它的活力!因为有时用户在第一页中有33行,第二天他有10行。我只想将填充的行从工作表1传输到工作表2,因为工作表2是MS Access的链接表。

编辑
以添加粘贴值功能

我想你需要像这样的东西

Sub Daten_Transfer()
    Range("A5:X" & Cells(Rows.Count, "A").End(xlUp).Row).Copy Destination:=Sheets("MDB_to_pA_Dispodaten").Range("A2")
End Sub
如果只想粘贴值,有两种方法:

1) 使用
范围
对象的
粘贴特殊
方法

Sub Daten_TransferValuesOnly1()    
    Range("A5:X" & Cells(Rows.Count, "A").End(xlUp).Row).Copy
    Sheets("MDB_to_pA_Dispodaten").Range("A2").PasteSpecial xlPasteValues

    Application.CutCopyMode = False 'clear clipboard
End Sub
2) 使用
属性

Sub Daten_TransferValuseOnly2()
    With Range("A5:X" & Cells(Rows.Count, "A").End(xlUp).Row) ' reference "source" range
        Sheets("MDB_to_pA_Dispodaten").Range("A2").Resize(.Rows.Count, .Columns.Count).value = .value ' write referenced range values in "target" sheet range of same size and starting from A2 
    End With
    Application.CutCopyMode = False
End Sub

我更喜欢后者,速度更快,无需使用剪贴板

编辑
即可添加粘贴值功能

我想你需要像这样的东西

Sub Daten_Transfer()
    Range("A5:X" & Cells(Rows.Count, "A").End(xlUp).Row).Copy Destination:=Sheets("MDB_to_pA_Dispodaten").Range("A2")
End Sub
如果只想粘贴值,有两种方法:

1) 使用
范围
对象的
粘贴特殊
方法

Sub Daten_TransferValuesOnly1()    
    Range("A5:X" & Cells(Rows.Count, "A").End(xlUp).Row).Copy
    Sheets("MDB_to_pA_Dispodaten").Range("A2").PasteSpecial xlPasteValues

    Application.CutCopyMode = False 'clear clipboard
End Sub
2) 使用
属性

Sub Daten_TransferValuseOnly2()
    With Range("A5:X" & Cells(Rows.Count, "A").End(xlUp).Row) ' reference "source" range
        Sheets("MDB_to_pA_Dispodaten").Range("A2").Resize(.Rows.Count, .Columns.Count).value = .value ' write referenced range values in "target" sheet range of same size and starting from A2 
    End With
    Application.CutCopyMode = False
End Sub

我更喜欢后者,更快且无需使用剪贴板

什么不起作用?请查看我的编辑确保rowcount>=5。当我将rowcount更改为5使用复制或将其他工作表中的范围设置为当前数据时,确保rowcount>=5。“自动填充”会填充同一页的同一起始单元格。什么不起作用?请查看我的编辑确保rowcount>=5。当我将rowcount更改为5时,请使用“复制”或将其他工作表中的范围设置为当前数据。自动填充将填充同一页同一起始单元格。是。是的!非常感谢。哦关于您的解决方案,我还有一个问题:-)如何仅粘贴值?对于您的解决方案,我需要类似于“.PasteSpecial xlPasteValues”的内容。或者我应该问一个新问题吗?是的。是的!非常感谢。哦关于您的解决方案,我还有一个问题:-)如何仅粘贴值?对于您的解决方案,我需要类似于“.PasteSpecial xlPasteValues”的内容。或者我应该问一个新问题吗?