マクロが何か他のものを保存したり、クリップボードをクリアしたりして、何もコピー&ペーストできないことに気付きました。マクロを実行するとコピー/ペースト(クリップボード)が影響を受けます
私のマクロは、num-lockをオフにするのと同じように、私のマシン上の他のタスクやアプリケーションと "対話"します。それはSendKeys
の結果です。これについてはhereとなり、これはthreadとなります。または私が言ったように、それは私のクリップボードに影響を与えたり、Adobe Acrobatを閉じたり、私のマシンをしばらく再起動しなければコードの途中で停止したりするだけです。私はこれが普通のことだと思います。それ以上のメモリを吸い取って、PDFに印刷したり、複雑な書式設定の警告エラーを引き起こす図表を編集しています。Application.DisplayAlerts = False
またはSendKeys {Enter}
で処理することはできません。
これら以外にも、マクロの実行中にレポートを編集する必要があります。また、実行中にコピー/ペーストできないという事実には耐えられません。
私は範囲をコピーして貼り付ける(範囲を別のものに割り当てることはできません)ので、コード内にコピー/貼り付けが必要です。私は正確に何が原因であるか分からないので、ちょうどApplication.CutCopyMode
が私のコードでFalse
になると言っています。
EDIT:
Sub Data_Filter(ic As Integer, sDate As Date, eDate As Date)
'Needs setup
ap.CutCopyMode = False
cr1 = ">=" & sDate
cr2 = "<=" & eDate
wsh.Range("$A$2:$AZ$315746").AutoFilter
wsh.Range("$A$2:$AZ$315746").AutoFilter Field:=1, Criteria1:= _
cr1, Operator:=xlAnd, Criteria2:=cr2
wsh.Range("$A$2:$AZ$315746").AutoFilter Field:=ic, Criteria1:="<>-"
wsh.Range(wsh.Cells(1, 1), wsh.Cells(1, 2).End(xlDown)).Copy
wsh1.Activate
wsh1.Range("A1").PasteSpecial xlPasteAll
For xx = 0 To 2
wsh.Activate
wsh.Range(wsh.Cells(1, ic + xx), wsh.Cells(1, ic + xx).End(xlDown)).Copy
Select Case wsh.Cells(2, ic + xx).Value
Case "Flow (MGD)"
ix = 1
Case "Depth (in)"
ix = 2
Case "Velocity (fps)"
ix = 3
End Select
wsh1.Activate
wsh1.Cells(1, 2 + ix).PasteSpecial xlPasteAll
Next xx
wsh.ShowAllData
wsh.Range("$A$2:$AZ$315745").AutoFilter
End Sub
質問:これは、フィルタリングし、新しいシートにデータを移動する部分であり、私は問題が私のクリップボードに格納され、その範囲をコピーすることによって引き起こされていると思いますメモリ。私が間違っているなら、私を訂正してください。この問題を解決する方法はありますか?コピーした範囲をクリップボードのメモリではなく別の場所に保存するなど、私のマシンで作業を続けることができますか?
p.s.私は選択/活性化の弱点を十分に認識しています。
なぜコピー/貼り付けをしなければならず、データ/コンテンツ/フォーマットを宛先セル/範囲に直接書き込むことができないのですか?ここにコードを投稿すれば、コピー/ペーストを使用しないようにコードを書き直す手助けができますか? – Ralph
@Ralph私は自分のテーブルをフィルタリングしています。何らかの理由でコピー/ペーストすると、コピー先のシートにフィルタリングされた値が表示されませんが、直接書き込むとフィルタが無視されます。 – Masoud
「可視セルのみ」をコピーします。クリップボードを「リセット」できるものがたくさんあり、私たちに何も表示していないので、あなたの質問はむしろ不明確/広範かつ難しいです。一般的な経験則では、何かをコピーして貼り付ける必要がある場合は、コピーした直後に貼り付けてください。 - ブックを開いたり、他の20もの作業をしたりしないでください。それを貼り付ける。それはあなたの質問にどのように関連しているのか分かりませんでした。明確にするために[編集]してください。 1Kの近くに住んでいる人は、これらのことを今までに知っておくべきだと思います。 –