-1
私は新しいVBAコーダーであり、それでも間違っています。レポートを書式設定するための非常に基本的で非常に単純なマクロを作成しました。実行前にシート内のセルがクリックされた場合、マクロが正しく実行されない
私は、ファイルを開くと、任意のセルをクリックするか、任意の場所に実際のスプレッドシートで、マクロを実行しない、マクロは完璧に実行、
私は、ファイルを開いても、ワンクリックを行うと、マクロはありません私の最初の行と列を自動調整しないでください。文字通りワンクリックで、私の結果は達成されません。
これを修正する必要があります。それが選択かアクティブなシートの問題かどうかはわかりません。非常に限られた理解。
'Unmerge all Cells in Worksheet
ActiveSheet.Cells.UnMerge
'Delete Columns A1 thru D1
Range("A1:D1").EntireColumn.Delete
'Delete Rows A1 thru A9
Range("A1:A9").EntireRow.Delete
'Cut and Paste Cells
Range("A2").Cut Range("A1")
Range("G1").Cut Range("F1")
Range("P1").Cut Range("O1")
Range("AA1").Cut Range("Z1")
'Sort by Column A to Remove Extra Rows from View
Columns("A:AM").Sort key1:=Range("A:A"), order1:=xlAscending, Header:=xlYes
'Auto Fit Contents in Columns and Rows
ActiveCell.Columns("A:AG").EntireColumn.Select
ActiveCell.Columns("A:AG").EntireColumn.AutoFit
ActiveSheet.Rows.EntireRow.AutoFit
'Delete Empty Columns
Range("B:B, D:D, G:I, K:L, N:N, P:Q, T:V, X:Y, AA:AB, AD:AF").EntireColumn.Delete
'Remove Wrap Text from Cell B1
Range("B1").WrapText = False
'Autofit Contents of Columns
Range("A1:AF1").Columns.AutoFit
'Autofit Row A2 Contents
Range("A2:A2").Rows.AutoFit
'Save File As
Application.GetSaveAsFilename
ありがとう。その変更を加えれば、ヘッダー行が長く効くように見えますが、ヘッダー行のセルが選択されている場合は、空白を削除するようにソートされていません。 Ughh ..私は思っています、私はこれを変更するだけですので、最初のステップは、A1を選択することです、それはdoesntの任意の値を持って、最終結果に影響を与えないように見える? ...私は本当にそれを周りに取り組むのが好きではありませんが、プログラマチックに間違ったことを理解する代わりに、私はこれらのマクロを書くことを学ぶので、このようなエラーはこれ以上起きません。 – user7263910
OK - より堅牢なコード: 1. Excelでの相対参照と絶対参照の違いについて学びます(ref:https://support.office.com/en-us/article/Switch-between-relative-absolute-and-mixed-references)。 -dfec08cd-ae65-4f56-839e-5f0d8d0baca9) 2. Excel VBAでRangeオブジェクトを使用する方法を学習します(ref:https://msdn.microsoft.com/en-us/library/office/ff838238.aspx) - 特にセル表記を使用する方法(記事の推奨どおり) これにより、発生している問題の種類が少なくなる傾向があります。 – Ben
あなたの言っていることを高く評価していますが、削除する必要のある行と列は常に同じであるため、私はそれをより動的にしませんでした。私は正確な参照を使用することができます。唯一の問題は、ユーザーがシート内の任意の場所をクリックすると、オートフィットセグメントでのみ、物事が乱れることです。他のすべては完璧に実行されます。私はあなたが添付した情報を見直します、私はヒントをありがとう:)私はこれを学ぶより多くの時間を費やすことに同意します。私は列が常に同じであるため名前の範囲を指定しなかったため、amoonに応じて行の量が毎月可変になります – user7263910