复制和粘贴范围的转置
Copy and Past Transpose of a Range
Sub CommandButton2_Click()
Dim Report As Workbook
Dim book As Workbook: Set book = ThisWorkbook
Dim myfilename As String
Dim lRow As Long
Set Report = Workbooks.Open("S:\HR Compensation\Christapher Martin\Tellurian
Inc Job Pricing\Job Families and Competencies - Report.xlsm")
lRow = book.Sheets(2).Cells(Rows.Count, 3).End(xlUp).Row
book.Sheets(2).Range(Cells(8, 3), Cells(lRow, 3)).Copy
Report.Sheets(1).Range("B2").PasteSpecial Transpose:=True
End Sub
我正在尝试让它工作,这样它就可以复制并粘贴输入的数据,而无需在每次添加新信息时手动更改代码,因为这最终会将一堆信息加载到 "Report" 本身,因此无法手动复制粘贴数据或更改代码。我知道问题出在代码的 Copy 行中的 lRow,我只是不确定它是什么。
与
一起使用
- 简化,以 点 (".") 开头的所有内容均指
object 在
With
语句中。
- 在没有
With
语句的版本中,以
dot (".") 前面应该有 book.Sheets(2)
- 不确定 'Tellurian Inc' 是否带有
SPACE
。正确的
如有必要。
代码
Sub CommandButton2_Click()
Dim Report As Workbook
Dim lRow As Long
Set Report = Workbooks.Open("S:\HR Compensation\Christapher Martin\" _
& "Tellurian Inc Job Pricing\Job Families and Competencies " _
& "- Report.xlsm")
With ThisWorkbook.Sheets(2)
lRow = .Cells(.Rows.Count, 3).End(xlUp).Row
.Range(.Cells(8, 3), .Cells(lRow, 3)).Copy
End With
Report.Sheets(1).Range("B2").PasteSpecial Transpose:=True
Application.CutCopyMode = False
End Sub
编辑:
- 您可以对另一个工作表执行相同的操作。
- 使用
.Parent
你指的是更高级别的对象,例如你要
保存更改并关闭工作簿,但您指的是
Sheets(1)
现在,您无法关闭它,因此使用 .Parent
您指的是更高级别的工作簿 (Report
)。出于安全原因,我留下了评论。
Sub CommandButton2_Click()
Dim Report As Workbook
Dim lRow As Long
Set Report = Workbooks.Open("S:\HR Compensation\Christapher Martin\" _
& "Tellurian Inc Job Pricing\Job Families and Competencies " _
& "- Report.xlsm")
With ThisWorkbook.Sheets(2)
lRow = .Cells(.Rows.Count, 3).End(xlUp).Row
.Range(.Cells(8, 3), .Cells(lRow, 3)).Copy
End With
With Report.Sheets(1)
.Range("B2").PasteSpecial Transpose:=True
'.Parent.Close True ' Save changes and close workbook.
End With
Application.CutCopyMode = False
End Sub
Sub CommandButton2_Click()
Dim Report As Workbook
Dim book As Workbook: Set book = ThisWorkbook
Dim myfilename As String
Dim lRow As Long
Set Report = Workbooks.Open("S:\HR Compensation\Christapher Martin\Tellurian
Inc Job Pricing\Job Families and Competencies - Report.xlsm")
lRow = book.Sheets(2).Cells(Rows.Count, 3).End(xlUp).Row
book.Sheets(2).Range(Cells(8, 3), Cells(lRow, 3)).Copy
Report.Sheets(1).Range("B2").PasteSpecial Transpose:=True
End Sub
我正在尝试让它工作,这样它就可以复制并粘贴输入的数据,而无需在每次添加新信息时手动更改代码,因为这最终会将一堆信息加载到 "Report" 本身,因此无法手动复制粘贴数据或更改代码。我知道问题出在代码的 Copy 行中的 lRow,我只是不确定它是什么。
与
一起使用- 简化,以 点 (".") 开头的所有内容均指
object 在
With
语句中。 - 在没有
With
语句的版本中,以 dot (".") 前面应该有book.Sheets(2)
- 不确定 'Tellurian Inc' 是否带有
SPACE
。正确的 如有必要。
代码
Sub CommandButton2_Click()
Dim Report As Workbook
Dim lRow As Long
Set Report = Workbooks.Open("S:\HR Compensation\Christapher Martin\" _
& "Tellurian Inc Job Pricing\Job Families and Competencies " _
& "- Report.xlsm")
With ThisWorkbook.Sheets(2)
lRow = .Cells(.Rows.Count, 3).End(xlUp).Row
.Range(.Cells(8, 3), .Cells(lRow, 3)).Copy
End With
Report.Sheets(1).Range("B2").PasteSpecial Transpose:=True
Application.CutCopyMode = False
End Sub
编辑:
- 您可以对另一个工作表执行相同的操作。
- 使用
.Parent
你指的是更高级别的对象,例如你要 保存更改并关闭工作簿,但您指的是Sheets(1)
现在,您无法关闭它,因此使用.Parent
您指的是更高级别的工作簿 (Report
)。出于安全原因,我留下了评论。
Sub CommandButton2_Click()
Dim Report As Workbook
Dim lRow As Long
Set Report = Workbooks.Open("S:\HR Compensation\Christapher Martin\" _
& "Tellurian Inc Job Pricing\Job Families and Competencies " _
& "- Report.xlsm")
With ThisWorkbook.Sheets(2)
lRow = .Cells(.Rows.Count, 3).End(xlUp).Row
.Range(.Cells(8, 3), .Cells(lRow, 3)).Copy
End With
With Report.Sheets(1)
.Range("B2").PasteSpecial Transpose:=True
'.Parent.Close True ' Save changes and close workbook.
End With
Application.CutCopyMode = False
End Sub