我希望Excel将数据从我的第一个工作表(Job!)复制到另一个工作表(Einfügen!),但问题是我的两个工作表都有很多不连续性。例如:
在从网络分析仪中提取的每个AV,AF,AN,...中有1600列,但它们从第11列或任何其他列开始随机。
在另一张工作表(Einfügen!)中我想自动粘贴这些数据 这是这样的:
例如我想从Job中复制AV中的所有数据!到Einfügen的Eingabe a(C11:F1611
)!来自Job的AF!到Einfügen的Eingabe a(U11:Z1611
)!等等但是AV和其他东西在Job中的位置!当我应用新文档时会发生更改,因此如何根据以下文本复制和粘贴此数据的程序:AV或AN或我的Job中写的任何其他内容!
我是excel的VBA新手,但我尝试过这样但是因为Job中的数据位置!更改,它无法正常工作。'在此示例中,我将数据从Sheet1(源)复制到Sheet2(目标)
Sub sbCopyRangeToAnotherSheet()
'Copy the data
Sheets("Job").Activate
Sheets("Job").Range(Range("C17659"), Range("F19259")).Copy
'Activate the destination worksheet
Sheets("Einfügen").Activate
'Select the target range
Range(Range("C11"), Range("F1611")).Select
'Paste in the target destination
ActiveSheet.Paste
Application.CutCopyMode = False
'Copy the data
Sheets("Job").Activate
Sheets("Job").Range(Range("C9639"), Range("H11239")).Copy
'Activate the destination worksheet
Sheets("Einfügen").Activate
'Select the target range
Range(Range("C11"), Range("L1611")).Select
'Paste in the target destination
ActiveSheet.Paste
Application.CutCopyMode = False
'Copy the data
Sheets("Job").Activate
Sheets("Job").Range(Range("C6431"), Range("H8031")).Copy
'Activate the destination worksheet
Sheets("Einfügen").Activate
'Select the target range
Range(Range("U11"), Range("Z1611")).Select
'Paste in the target destination
ActiveSheet.Paste
Application.CutCopyMode = False
'Copy the data
Sheets("Job").Activate
Sheets("Job").Range(Range("C12847"), Range("F14447")).Copy
'Activate the destination worksheet
Sheets("Einfügen").Activate
'Select the target range
Range(Range("Q11"), Range("T1611")).Select
'Paste in the target destination
ActiveSheet.Paste
Application.CutCopyMode = False
'Copy the data
Sheets("Job").Activate
Sheets("Job").Range(Range("C20867"), Range("F22467")).Copy
'Activate the destination worksheet
Sheets("Einfügen").Activate
'Select the target range
Range(Range("AA11"), Range("AD1611")).Select
'Paste in the target destination
ActiveSheet.Paste
Application.CutCopyMode = False
'Copy the data
Sheets("Job").Activate
Sheets("Job").Range(Range("C28887"), Range("F30487")).Copy
'Activate the destination worksheet
Sheets("Einfügen").Activate
'Select the target range
Range(Range("M11"), Range("P1611")).Select
'Paste in the target destination
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub
答案 0 :(得分:0)
Ela,你可以在这里找到一个很好的起点:
http://www.excel-easy.com/vba/range-object.html
基本上你需要定义要复制的范围,然后复制粘贴,这是一个未经测试的例子:
Sub CopyPaste()
Dim rngCopy As Range, rngPaste As Range
Set rngCopy = Worksheets("Sheet1").Range("a1")
Set rngPaste = Worksheets("Sheet2").Range("a1")
rngCopy.Copy rngPaste
End Sub
如果范围移动(我认为你试图说),研究dlookup函数和range.end(xlup)
抱歉,我对你的特定例子无能为力 - 不太了解它
答案 1 :(得分:0)
如果您要复制的区域仅包含数字,那么您可以尝试这样做:
在工作表中,转到HOME>>找到&选择>>转到特殊并选择常量>>数字>>好。
http://excel.officetuts.net/images/2014-12-29/go-to-special.png
如果所选区域仅 您要复制的区域,则可以尝试使用此宏:
Sub sbCopyRangeToAnotherSheet()
Dim rngFrom As Range, rngTo As Range, rngNumbers As Range
Set rngTo = Sheets("Einfügen").Range("C11")
Set rngNumbers = Sheets("Job").UsedRange.SpecialCells(xlCellTypeConstants, xlNumbers)
For Each rngFrom In rngNumbers.Areas
rngFrom.Copy
rngTo.PasteSpecial
Set rngTo = rngTo.Offset(rngFrom.Columns.Count)
Next
Application.CutCopyMode = False
End