基本上我有一个动态范围,将永远是在列A:C在片1我试图写个人宏拷贝的动态范围和调换这到第2页到允许邮件合并能够读取第1行作为邮件合并字段。VBA移调的动态范围在Excel
目前出现在此行中的错误:
Set sourceRange = ActiveSheet.Range(Cells(1, 1), Cells(lastRow, 1))
整个代码如下所示。有可能是我错过了一个简单的错误,或者甚至是一个更简单的方法来实现我想要的结果,但是这是我目前所提出的。
Sub TrasposeData()
'
' TrasposeData Macro
' Takes the data from sheet one and transpose it to sheet 2 to allow for mail merge compatibility.
Sheet1.Activate
Dim sourceRange As Range
Dim targetRange As Range
Dim lastRow As Long
lastRow = WorksheetFunction.CountA(Range("A:A"))
Set sourceRange = ActiveSheet.Range(Cells(1, 1), Cells(lastRow, 1))
Sheet2.Activate
Set targetRange = ActiveSheet.Cells(1, 1)
Sheet1.Activate
sourceRange.Copy
Sheet2.Activate
targetRange.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
' Keyboard Shortcut: Ctrl+t
'
Application.Run "PERSONAL.XLSB!TrasposeData"
ActiveWindow.Close
End Sub
任何帮助将不胜感激。
心灵添加错误消息的问题是什么?如果错误号可能会帮助我们帮助你 – 2015-02-09 05:31:59
。是'1004'的原因是你的列A是空可言,也没有用'0'因此充满'lastRow'变量结果的小区,你不能创建范围,行数为0 – 2015-02-09 06:51:29
结束错误确实是1004。我用El Scripto建议的代码代替,现在错误是运行时'424' - 对象需要的错误。 这个错误发生在第一场合: Sheet2.Activate – 2015-02-11 01:18:58