私は、行が特定の基準(列A = "1")をすべて満たしているときにデータの行にコピーするプログラムを作成/私のデスクトップのテストフォルダにあるワークブック。プログラムは、最初に働いたが、今ここでエラーをプルアップ:VBAのダイナミックレンジをコピーして貼り付けるエラー:オブジェクトワークシートの範囲
ws.Range(ws.Cells(r, 1), Cells(r, 20)).Copy Destination:=ThisWorkbook.Sheets("SummaryAccrual").Range("A" & lr2 + 1)
これがソートされると、私もコピー&ペーストするこの方法は、式ではなく値を貼り付けますことを心配、貼り付けるための簡単な方法があります値?
あなたのご協力ありがとうございます、私はそれを感謝します!
マイコード
Option Explicit
Sub AccrualCombiner()
Dim Path As String
Dim FileName As String
Dim Wkb As Workbook
Dim cWkb As Workbook
Dim ws As Worksheet
Dim answer As Integer
Dim lr As Long, lr2 As Long, r As Long
Dim rc As Object
Application.EnableEvents = False
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.AskToUpdateLinks = False
answer = MsgBox("Would you like to combine Accruals for current period?", vbYesNo + vbQuestion, "Confirmation")
If answer = vbYes Then
Set cWkb = Application.ActiveWorkbook
lr2 = ThisWorkbook.Sheets("SummaryAccrual").Cells(Rows.Count, "A").End(xlUp).Row
Path = "C:\Users\alexander.neale\Desktop\Test"
FileName = Dir(Path & "\*.xls", vbNormal)
Do Until FileName = ""
Set Wkb = Workbooks.Open(FileName:=Path & "\" & FileName)
For Each ws In Wkb.Worksheets
For r = 14 To 60 Step 1
If ws.Range("A" & r).Value = "1" Then
ws.Range(ws.Cells(r, 1), Cells(r, 20)).Copy Destination:=ThisWorkbook.Sheets("SummaryAccrual").Range("A" & lr2 + 1)
lr2 = ThisWorkbook.Sheets("SummaryAccrual").Cells(Rows.Count, "A").End(xlUp).Row
End If
Next r
Next ws
Wkb.Close False
FileName = Dir()
Loop
Application.EnableEvents = True
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Application.AskToUpdateLinks = True
End If
End Sub
は 'ws.Range(ws.Cells(R、1)、セル(R、20))を変更してみてくださいコピーDestination:= ThisWorkbook.Sheets( "SummaryAccrual")。範囲( "A"&lr2 + 1) ':ws.Range(ws.Cells(r、1)、Cells(r、20))。 ( "SummaryAccrual")Range( "A"&lr2 + 1) ' –