財務記録用のExcel 2010ワークブックがあります。 1つのワークシートにはメニューがあります。このメニューでは、添付されたマクロ魔法のボタンを選択してメニューを構成するセルを隠し、トランザクション入力フォームを非表示にします。マクロ実行時にランタイムエラー '91'が発生する
このトランザクション入力には、ここで重要ではないいくつかの値が含まれています。データを入力したら、適切にラベル付けされた入力ボタンを押します。今すぐ私はこのボタンが正常に働いたドキュメントを書いたとき、それは正しいワークシートに空の行を挿入したレコードワークシートに送られたフォームに戻ってコピーされたデータは新しい空白の行に戻ってデータを挿入しました。その後、エントリが正しい順序で確実に表示されるように、dateカラムで最も新しいものから最も古いものにソートします。最後にフォームに戻り、データをクリアします。ヒストリーシートを非表示にするまで、これはうまくいきました。
シートを非表示にすると、操作を実行したシートを非表示にしてシートを再表示してマクロを再記録しました。マクロを実行すると、シートが非表示になります。その後、 "ランタイムエラー '91'オブジェクト変数またはWithブロック変数が設定されていません"エラーが発生します。マクロが完了しないため、履歴シートは表示され、フォームにはまだデータが残っています。黄色で強調表示行
Selection.ListObject.ListRows.Add (1)
で
Sub transaction()
'
' transaction Macro
'
'
Sheets("Income").Select
Sheets("Transaction History").Visible = True
Selection.ListObject.ListRows.Add (1)
Sheets("Income").Select
Range("B6:G6").Select
Selection.Copy
Sheets("Transaction History").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWorkbook.Worksheets("Transaction History").ListObjects("Table9").Sort. _
SortFields.Clear
ActiveWorkbook.Worksheets("Transaction History").ListObjects("Table9").Sort. _
SortFields.Add Key:=Range("Table9[[#All],[Date]]"), SortOn:=xlSortOnValues _
, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Transaction History").ListObjects("Table9"). _
Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Sheets("Transaction History").Select
ActiveWindow.SelectedSheets.Visible = False
Range("B6:G6").Select
Selection.ClearContents
Rows("6:8").Select
Range("A8").Activate
Selection.EntireRow.Hidden = False
Range("B6").Select
ActiveCell.FormulaR1C1 = "=R[1]C"
Rows("7:7").Select
Selection.EntireRow.Hidden = True
Range("C6").Select
End Sub
:エラーがショーこれを表示されたときに与えられたオプションでのデバッグを選択
。私はVBAを知らないので、それを書いていないマクロを記録しており、私は頭や話をすることができません。
編集: わかりました、私はテーブルを参照する方法をfirguredています
Worksheets("Transaction History").ListObjects("thistory").ListRows.Add (1)
だから、そこから私はちょうどつもり試してみてください、それをVBAではなく、再書き込み全部しようと思って上それを記録しなさい。 Googleは私の友人です。あなたのすべての協力に感謝します。あなたが何度も手伝ってくれるように助けてください。
空白の行を挿入する前に実際にハングすることがわかりました。 – SpeedCrazy
'.Select'はエラーの主な原因です:)直接操作を実行する必要があります。今、 'Selection.ListObject.ListRows.Add(1)'について 'Selection'はどのシートであり、' Selection'は正確に何ですか? –
ここに私のn00bishnessのため申し訳ありませんが、正確には "直接操作をPreform"を意味するのですか?あなたのコメントの残りの部分は私と同じように混乱しています。申し訳ありません – SpeedCrazy