[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『フォルダ内の全ファイルの更新?A』(サンハイツ)
以前,下記のようなコードを教えてもらいました。
Sub test() Dim fn As String, myLinks, myLink, i As Long fn = Dir(ThisWorkbook.Path & "\*.xls") Do While fn <> "" If fn <> ThisWorkbook.Name Then With Workbooks.Open(ThisWorkbook.Path & "\" & fn, updatelinks:=1) myLinks = .LinkSources(Type:= xlLinkTypeExcelLinks) If IsArray(myLinks) Then For i = LBound(myLinks) To UBound(myLinks) .BreakLink Name:=myLinks(i), Type:=xlLinkTypeExcelLinks Next End If '<- 追加 10:29 .Close true End With End If fn = Dir Loop End Sub
これは,同一フォルダ内に,A,B,Cのファイルがあって,AファイルからB,Cファイルにリンクがかかっていて, Aファイルからマクロを実行すると,B,Cファイルを開いて,データを更新して,リンクを切断して,上書き保存するものです。
ここで,Aファイルのシート1のA1〜A3セルのデータをコピーして,B,CファイルのA1〜A3セルに貼り付ける というコードを上記コードの中に組み込みたいのですが,どうなりますでしょうか。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
.Sheets("Sheet1").Range("A1:A3").Value = _ ThisWorkbook.Sheets("Sheet1").Range("A1:A3").Value .Close True End With
(マナ) 2014/07/25(金) 23:04
ありがとうございます。
ここで,同じフォルダ内に,Dファイルがあるとします。
それで,「Dファイルには,上記のコピー貼り付けが作用しない」
というふうにコードを作りたいのですが,いかがでしょうか。 よろしくお願いします。
(サンハイツ) 2014/07/26(土) 09:20
if ファイル名がDでない then コピー end if
だとしたら、元のコード内で、同様のことを行っていますが理解されていますか
(マナ) 2014/07/26(土) 09:45
ありがとうございます。
ThisWorkbookのSheets("Sheet1").Range("A1:A3")をWorkbooksのSheets("Sheet1").Range("A1:A3") にコピーして貼り付けるのですが,このとき,Workbooksの中に「Dファイル」があって Dファイルには貼り付かない
というようにしたいのですが。
(サンハイツ) 2014/07/26(土) 11:14
>If fn <> ThisWorkbook.Name Then
の部分は理解できていますか。 理解せずに使えさえすればOKという感じでは、 いつまでもご自身で対応できず困ると思いますが…
再掲します。
> if ファイル名がDでない then > コピー > end if
(マナ) 2014/07/26(土) 11:30
できました。 いろいろ調べて,
If fn <> ThisWorkbook.Name And fn <> "D.xlsm" Then
としたら,うまくいきました。 ありがとうございました。
(サンハイツ) 2014/07/26(土) 15:21
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.