我正在完成一个跟踪器。用户将在一张纸上完成问题-每个答案将在单元格(B2-B8)中,并复制到另一张纸的一行中。我想粘贴到下一个可用行。
我尝试过复制范围(B2-B8),然后粘贴transpose = True的代码。这是一个错误。接下来,我尝试应对每个单元格并粘贴每个单元格。但不确定如何将粘贴内容添加到下一行。我不记得该代码用于创建具有设定范围的循环,或者该代码添加至下一个可用行。
Range("B2").Select
Selection.Copy
Sheets("Sheet2").Select
Range("A5").Select
ActiveSheet.Paste
Sheets("Settlement Request").Select
Range("B3").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Sheet2").Select
Range("B5").Select
ActiveSheet.Paste
Sheets("Settlement Request").Select
Range("B4").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Sheet2").Select
Range("C5").Select
ActiveSheet.Paste
我还没走那么远。当我尝试transpose = true时,出现编译错误。
答案 0 :(得分:0)
一种方法可能是:
Option Explicit
Sub TransferAnswersToSomeSheet()
' Copying a vertical range (on "Settlement Request" sheet)
' and pasting to a horizontal range (on "Sheet2" sheet).
Dim sourceSheet As Worksheet
Set sourceSheet = Worksheets("Settlement Request") ' If there is a workbook, specify it too e.g. ThisWorkbook or Workbooks("someWorkbookName")
Dim destinationSheet As Worksheet
Set destinationSheet = Worksheets("Sheet2") ' If there is a workbook, specify it too e.g. ThisWorkbook or Workbooks("someWorkbookName")
Dim cellToPasteTo As Range
Set cellToPasteTo = destinationSheet.Cells(destinationSheet.Rows.Count, "A").End(xlUp).Offset(1, 0)
sourceSheet.Range("B2:B8").Copy
cellToPasteTo.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Transpose:=True
Application.CutCopyMode = False
End Sub
上面的代码将粘贴为值(同时保留原始数字格式)。如果这不适合您,则可以使用以下显示的选项替换代码中的xlPasteValuesAndNumberFormats
:https://docs.microsoft.com/en-us/office/vba/api/excel.xlpastetype。
逻辑(在代码中)是在A列中找到最后一个值并将其粘贴到紧接在下面的行中。使用Range.End(xlUp)
找到最后一个值,然后使用Range.Offset(1,0)
访问它下面的单元格。