VBA无法转置数据(从一个工作簿复制到已关闭的书)

时间:2017-12-20 22:04:33

标签: excel-vba vba excel

我正在尝试编写一个代码,该代码将从一个工作簿中复制数据并将其保存到已关闭的书中。问题是我需要从列到行转换的数据。我尝试过粘贴特价,但它们没有用。下面是我使用的代码,它至少会将数据从活动工作表传输到关闭工作表。

Sub LessonLearned()

  Dim destSht As Worksheet

  Workbooks.Open Filename:="C:\Users\ceasat28\Documents\LessonsLearnedTest\LessonsLearnedLog.xlsx"
  Set destSht = ActiveWorkbook.Worksheets("DiscoveredLessons") 

  ActiveSheet.Unprotect Password:="Secret"

  With ThisWorkbook.Worksheets("Sheet1") 

    With .Range(.Range("LL_Data"), .Range("LL_Data").End(xlDown)) 

      destSht.Cells(destSht.Rows.Count, 1).End(xlUp).Offset(1).Resize(.Rows.Count, .Columns.Count).Value = .Value 

    End With

    destSht.Parent.Close True 
  End With
End Sub

有人可以帮我转换价值吗?

谢谢, 塔拉

1 个答案:

答案 0 :(得分:3)

几个问题:

  • 您需要实际转置数据
  • 您需要根据转置的源范围
  • 正确调整目标范围的大小
Sub LessonLearned()
    Dim destWb As Workbook
    Dim destSht As Worksheet
    Dim Data As Variant

    Set destWb = Workbooks.Open(Filename:="C:\Users\ceasat28\Documents\LessonsLearnedTest\LessonsLearnedLog.xlsx")
    Set destSht = destWb.Worksheets("DiscoveredLessons")

    destSht.Unprotect Password:="Secret"

    With ThisWorkbook.Worksheets("Sheet1")
        With .Range(.Range("LL_Data"), .Range("LL_Data").End(xlDown))
            Data = Application.Transpose(.Value)
            destSht.Cells(destSht.Rows.Count, 1).End(xlUp).Offset(1).Resize(.Columns.Count, .Rows.Count).Value = Data
        End With
        destSht.Parent.Close True
    End With
End Sub