Excelでのpersonal.xlsbの問題
personal.xlsbファイルに2つのマクロがあります.それらの1つは、割り当てられたキーストロークで常に正常に動作し、Excelは、必要に応じてこのマクロを実行した後に完全に動作します.
ただし、他のマクロを実行すると、キーストロークを使用できなくなり、alt-f8マクロリストから実行する必要があります.
このマクロが正常に実行された後、Excelを再び開くと必ずBook2が開きます.その後、Excelを閉じて再び開くと、book3が開かれます.
問題のあるマクロは、alt-d、lでうまくコンパイルされます.
Excelを通常の状態にリセットする唯一の方法は、バックグラウンドプロセスを削除するか、タスクを終了することです.これは、おそらく同じことです.その後、このマクロを再度実行するまでExcelは正常に動作します.
これを引き起こす可能性のあるVBAコードには何がありますか?
Windows 10
でOffice 365を実行しています.私はスクリーンリーダーを使用し、視覚障害のためにキーボードからすべてを行うため、マウスを使用できません.
私のグーグルと質問はすべて無駄です.私はコードで馬鹿げた初心者のことをやっていると想像しますが、どちらのマクロも完全に機能します.Excelを妨害するものでも、私が言うように、そのキーボードショートカットは機能しません.
このグループの知恵に深く感謝します.
どうもありがとう.
ドンバレット
返信リスト(回答:11)
マクロを見せてください.
アンドレアス.
応答1# ->にスキップ2 #DonBarrAndreasに感謝します.以下は、マクロの.basエクスポートです.
属性VB_Name="BreakBest"
明示的なオプション
Sub BreakBest()
属性BreakBest.VB_Description="購入リスト全体を最高のもので並べ替え"
属性BreakBest.VB_ProcData.VB_Invoke_Func="J\n14"
'
'DeleteAllRowsマクロ
'は、すべての空白行を削除し、株価を株価順に並べ替えます
'
'キーボードショートカット:Ctrl + Shift + J
'
Application.ScreenUpdating=False
Dim numrow As Long
MyRangeを範囲として暗くする
Dim iCounterをできるだけ長く
Dim lsort As Long
範囲として薄暗くする
Set MyRange=ActiveSheet.UsedRange
For iCounter=MyRange.Rows.Count To 1 Step-1
If Application.CountA(Rows(iCounter).EntireRow)= 0 Then
Rows(iCounter).Delete
終了の場合
次のiCounter
ストックを設定= Cells.Find( "Conservative")
在庫がない場合、それでは何もありません
Cells.Find(What:= "Conservative"、After:= ActiveCell、LookIn:= xlFormulas、_
LookAt:= xlPart、SearchOrder:= xlByRows、SearchDirection:= xlNext、_
MatchCase:= False、SearchFormat:= False).Activate
Selection.EntireRow.Delete
終了の場合
ストックを設定= Cells.Find( "Aggressive")
在庫がない場合、それでは何もありません
Cells.Find(What:= "Aggressive"、After:= ActiveCell、LookIn:= xlFormulas、_
LookAt:= xlPart、SearchOrder:= xlByRows、SearchDirection:= xlNext、_
MatchCase:= False、SearchFormat:= False).Activate
Selection.EntireRow.Delete
Selection.EntireRow.Delete
終了の場合
ストックを設定= Cells.Find( "Aggressive")
在庫がない場合、それでは何もありません
Cells.Find(What:= "Aggressive"、After:= ActiveCell、LookIn:= xlFormulas、_
LookAt:= xlPart、SearchOrder:= xlByRows、SearchDirection:= xlNext、_
MatchCase:= False、SearchFormat:= False).Activate
Selection.EntireRow.Delete
Selection.EntireRow.Delete
終了の場合
Set MyRange=ActiveSheet.UsedRange
numrow=MyRange.Rows.Count
Application.Goto Reference:= "R1C16"
ActiveCell.Value=numrow
Application.Goto Reference:= "R2C11"
Selection.NumberFormat="#、## 0.00"
ActiveCell.FormulaR1C1="= RC [-4]/(DATEDIF(RC [-6]、(TODAY()+ 1)、" "d" "))* 1000"
Selection.Copy
Range(Cells(2、11)、Cells(numrow、11)).Select
ActiveSheet.Paste
Application.CutCopyMode=False
ActiveWorkbook.Worksheets( "breakthrough-buy-list").Sort.SortFields.Clear
ActiveWorkbook.Worksheets( "breakthrough-buy-list").Sort.SortFields.Add2 Key _
:= Range( "K2")、SortOn:= xlSortOnValues、Order:= xlDescending、DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets( "breakthrough-buy-list").Sortを使用
.SetRange Range( "A2:K40")
.Header=xlNo
.MatchCase=False
.Orientation=xlTopToBottom
.SortMethod=xlPinYin
.適用
次で終わる
Application.Goto Reference:= "R1C11"
ActiveCell.FormulaR1C1="最高"
Application.Goto Reference:= "R1C1"
ActiveWorkbook.Names.Add Name:= "Title"、RefersToR1C1:= _
"= breakthrough-buy-list!R1C1"
ActiveWorkbook.Names( "Title").comment=""
ActiveWorkbook.Save
End Sub
応答2# ->にスキップ3 #Andreasこんにちはドン、
下記のコードを試してください.問題解決済み?
andreas.
SUB BREASBEST()
'' DeleteAllRowsマクロ
''キーボードショートカット:Ctrl + Shift + J
' MyRange As Range
DIM ICounter range as Rake as Range and forse
myrange= activeSheet.UsedRange
ICounter= myRange.rows.Countを設定します.1ステップ-1
application.counta(行(ICounter).EntireRow)= 0
次の場合
Stock= Cells.Find( "保守的"、 lookat:xlpart)
在庫がない場合は、Stock.Entirerow.Delete
stock= cells.find( "Aggressive")
在庫が含まれていない場合は、Stock.Entirerow.Delete
myRange=範囲( "A1").CurrentRegion
範囲( "p1")= myrange.rows.count
範囲( "k1")= "Best"
範囲( "k2"、範囲( "k"&myrange.rows.count)))
.NumberFormat= "## 0.00"
.formular1c1= "= rc [-4]/(Datedif(RC [-6]、(今日) ()+1)、 "" D ")* 1000" ""
myrange.sort範囲( "k1")、XlDescending、ヘッドで終わりますER:= XLEES
ActiveWorkbook.Names.ADD名:= "title"、referstor1c1:= "= breakthrough-buy-list!r1c1" "
ActiveWorkbook.Names(" title ").comment=""
ActiveWorkbook.Save
application.ScreenUpdating= true
end sub
応答2# ->にスキップ4 #DonBarrコードは非常にクリーンなようです.初期の問題を抱えているのは私が間違ったことについて簡単に助言することができますか?
グラフィックがここに貼り付けられているかどうかわからない.すみません、スクリーンショットのグラフィックを貼り付ける方法はわかりません.
応答6# ->にスキップ7 #DonBarr私はどこかに投稿された場合に変更された株の名前でダミーファイルをアップロードしたいです.私の人生を保存するためのアップロードボタンが見つかりません.どうやって表示されますか?どうもありがとう!
応答6# ->にスキップ8 #Andreasここにファイルをアップロードしてください.ファイルを表示できるのは私だけです.
https://www.dropbox.com/request/PTPFz9tT43hCtSy4War7
a>アンドレアス.
応答8# ->にスキップ9 #DonBarrファイルがアップロードされました.ちなみに、古いマクロで試行錯誤しましたが、Excelの誤動作を引き起こすコードは、セルa1の名前をTitleに定義するコードの最後の方にあるようです.Andreasに感謝します.
応答9# ->にスキップ10 #AndreasCSVファイルをアップロードしました...
CSVファイルをインポートすると、Excelファイルと結果が異なるため、インポートできません.
いつものようにこのCSVファイルをインポートします
シートをコピーしてデータを目的の結果に変更します
そのExcelファイルをドロップボックスにアップロードしますアンドレアス.
こんにちはドン、
下記のコードを試してください.どうなりますか?
andreas.
sub breakbest()
範囲として、AS範囲として
'
これは範囲内( "b1"、 "b"&rows.count)です.end(xlup))
isEmpty(これで)
すべてが何もない場合はall=このall erse set all= une(all、this)
次の場合
次の
2ndヘッダ
範囲内( "A3"、範囲( "A"&rows.count).end(xlup))
strcomp(これ、 "シンボル"、vbtextcompare)= 0<>
すべてが何もない場合は、all=このalteを設定します.all= UNION(all、これ)
次の行を削除するBR>'すべてのデータ( "A1")を参照してください( "a1")currentRegion "range(" k1 ")="best "
setこの=範囲(" k2 ")を設定します.サイズ変更(.ROWS.COUNT-1)
この
FORMULAR1C1= "= RC [-4]/(Datedif(RC [-6]、(今日()+ 1)、" D "")* 1000 ""
.NumberFormat= "0.00"
.currentRegion
.sortレンジ( "k1")、xldescending 、ヘッダー:= xlyes
'' clean up
.replace vbcrlf、 "" "".entirerow.autofit
.entirecolumn.autofit
.NAME= "title"
end sub