Vba 选择自动填充到其他工作表中
下面的代码在我的工作表1中运行良好。但是我想把数据从一张纸转移到另一张纸上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
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”的内容。或者我应该问一个新问题吗?