このサイトとExcelの新機能です。私はスプレッドシートの作成に取り組んできました。自分自身と私のチームの他のメンバーのためにスムーズにするために、スプレッドシートを作成し、それをできる限り自動化することによって、私のやり方をぼかしました。それは私が望むタスクのほとんどを実行しますが、残っているものはまだいくつかあります。それが現在立っているとしてここに私のコードは次のとおりです。Excel VBA - 特定のテキストを含む行を削除するためのマクロへの機能の追加
Sub Setup()
'
' Setup Macro
'
' Keyboard Shortcut: Ctrl+e
'
Rows("1:3").Select
Application.CutCopyMode = False
Selection.delete Shift:=xlUp
Cells.Select
ActiveWorkbook.Worksheets("Panel1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Panel1").Sort.SortFields.Add Key:=Range("C1:C18") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Panel1").Sort
.SetRange Range("A1:Q18")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Columns("B:B").Select
Cells.Replace What:="RTA", Replacement:="DELETE", LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
ReplaceFormat:=False
Columns("C:C").Select
Selection.Copy
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5
Columns("O:O").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.TextToColumns Destination:=Range("O1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
Columns("O:P").Select
With Selection
.VerticalAlignment = xlCenter
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.MergeCells = False
End With
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
Columns("N:N").Select
ActiveWindow.LargeScroll ToRight:=-1
Columns("A:N").Select
Range("N1").Activate
Selection.EntireColumn.Hidden = True
End Sub
私は現在、ほとんどのに苦しんだ事は、特定のテキスト文字列を検索し、それを含む行全体を削除します。このマクロに機能を追加しています。多くの人がオートフィルタの使用を提案しているのを見たことがありますが、私は行を完全に削除する必要があります。私はまた、本当に素晴らしいスタンドアロンソリューションをたくさん見つけましたが、私はこれらのマクロをどのように新しいマクロにするのかを理解できないようです。また、私は、Find and Rowsを最初に実行した場合、その行を削除するだけで、ワークシート全体を削除してしまったと考えて、Delete Sheet Rowsアクションをマクロに組み込もうとしました。
私が述べたように、今では、Delete Rowsルートを実行しようとしていたので、Find(RTA)とReplace(DELETE)ですが、最終的には、テキストRTAを作成し、それを含む行を削除します。
さらに、これを2つのワークシート(Panel1、Panel2)で同時に実行する方法があるのですか、それとも両方とも独立して実行する必要がありますか?
ご協力いただきありがとうございます。私は非常に感謝しています。私は自分自身で解決策を試し続けようとしていますが、明らかに私はこの仕事に多くの時間を費やしてきました...
感謝を持っています。上記のマクロにこの機能を組み込む方法はありますか?あるいは、少なくともこのスクリプトと同じように機能するでしょうか? 'プライベートサブWorksheet_Calculate()各Rcellが範囲について暗いRcellが同様範囲 ( "A45:R45") rCell.EntireColumn.Hidden =(rCell.Value = "非表示") 次にRcellが終了Sub' 1つはバックグラウンドで常に実行され、値が変更されたときにワークシートを変更します。私は可能な限りキーストロークを最小限にしようとしています。申し訳ありませんが、これは明らかなはずですが、私が言ったように、私はExcel/VBA初心者です。 – SeedySea
@SeedySea CleanRangeサブをモジュールにコピーして貼り付けると、それが利用可能になり、上の "Call CleanRange ..."という行で呼び出すことができます。あなたはそれが起こりたい場所(おそらくWorksheet_Calculateの中に、あなたが望むならば)どこにでも正しい引数でこの呼び出しを入れなければなりません。 –
これを上記のマクロに追加して実行した最初の関数にしたい場合は、このように呼び出しを追加しますか? "..." ActiveWorkbook.Worksheets( "Panel1")。Sort.SortFields.Add Key:=範囲( "C1:C18")_ 、SortOn:= xlSortOnValues、Order:= xlAscending、DataOption:= xlSortNormal Call CleanRange (範囲( "A1:C8")、 "2") End With ...また、私はあなたが 'Cells(I、K).Value'で何を意味しているのか完全にはわかりません。正確なテキスト文字列RTAの列Bのみを見てください。どう見ていますか?また、たとえば列Bと列Cを検索して – SeedySea