私は50のワークブックを持っており、メインのものから他の49個のファイルへのコルンデント名の行をコピーするコードを作った。問題は、49のターゲットファイルに貼り付けることです - 貼り付け方法は機能しません。エラーは、フィルタが名前のエントリを見つけられない場合です。フィルタにメインファイルの名前が見つからない場合、見つからなかった名前のファイルに「今月のエントリはありません」という行が貼り付けられます。ありがとうございました。ワークブック間のペースト
助けを歓迎します。
Sub name1()
Dim ws As Worksheet
Dim rng As Range, rngA As Range, rngB As Range
Dim LRow As Long
Set ws = Sheets("name list")
With ws
LRow = .Range("A" & .Rows.Count).End(xlUp).Row
Set rng = .Range("A1:M" & LRow)
.AutoFilterMode = False
With rng
.AutoFilter Field:=12, Criteria1:="name1"
Set rngA = .Offset(1, 0).SpecialCells(xlCellTypeVisible)
End With
.AutoFilterMode = False
With rng
.AutoFilter Field:=13, Criteria1:="name1"
Set rngB = .Offset(1, 0).SpecialCells(xlCellTypeVisible)
End With
.AutoFilterMode = False
rng.Offset(1, 0).EntireRow.Hidden = True
Union(rngA, rngB).EntireRow.Hidden = False
End With
End Sub
Sub name11()
Dim lst As Long
Dim rng As Range
Dim i As Integer
Set rng = Application.Intersect(ActiveSheet.UsedRange, Range("A:M"))
rng.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Application.DisplayAlerts = False
Workbooks.Open Filename:= _
"\\HOFS\persons\name1.xlsm" _
, UpdateLinks:=true
With Sheets("tribute").Range("A" & Rows.Count).End(xlUp).Offset(1)
'.PasteSpecial Paste:=xlPasteColumnWidths
.PasteSpecial Paste:=xlPasteValues
End With
ActiveWorkbook.Close SaveChanges:=True
Application.DisplayAlerts = False
Windows("name list.xlsm").Activate
rng.Offset(1, 0).EntireRow.Hidden = False
End Sub
Sub TRANSFER_name1()
Call name1
Call name11
End Sub
「どうしますか?」 – SiHa
問題はリンクを更新して、私はそれを変更したので、今すぐ動作します。しかし、フィルターがリスト内で名前を見つけられないと、コードは停止します。フィルタにメインファイルの名前が見つからない場合、見つからなかった名前のファイルに「今月のエントリはありません」という行が貼り付けられます。ありがとうございました。 – wittman