Excelは私に与えます
Run-time error '-2147467259 (80004005): Method 'Maximumscale' of object 'Axis' failed
ただし、シートが保護されている場合のみ。
今、私はまた、
ThisWorkbok
の保護されていないコードを持っています次のようなExcelオブジェクト。
Sheets("Charted").Protect Password:="123", UserInterFaceOnly:=True
私のコードは次のとおりです:
Sub SetAxes()
Dim objCht As ChartObject, AxisOne As Long, AxisTwo As Long, RangeMin As Double
Dim RangeMax As Double, rng As Range
For Each objCht In Sheets("Charted").ChartObjects
AxisOne = Sheets("Charted").Range("$H$32").Value
AxisTwo = Sheets("Charted").Range("$H$6").Value
Set rng = Sheets("Charted").Range("H7:H31")
RangeMin = Application.WorksheetFunction.Min(rng)
RangeMax = Application.WorksheetFunction.Max(rng)
With objCht.Chart
With .Axes(xlValue)
If AxisOne > AxisTwo Then
.MaximumScale = AxisOne + 2000000 + RangeMax
.MinimumScale = AxisTwo - 2000000
Else
.MaximumScale = AxisTwo + 500000 - RangeMin 'Error Occurs on this line
.MinimumScale = AxisOne - 2000000
End If
End With
End With
Next objCht
Call HideZeroRows
End Sub
このコードについて何か異常なことはありますか? それはすべて同じシートで発生し、マクロが実行できるようになっているので、何が起こっているのでしょうか? それは完全な開示のためにそもそもこれを必要とする理由であるウォーターフォール棒グラフです。
前もって感謝します。
関連した質問
- Excel VBA:チェックしたチェックボックスをセルに保存
- VBAを使用してデータを含む特定のセルのみに番号を設定する方法
- パスワードがテキストフィールドに入力された後、パスワードのVBAが続行しない
- セルにリストの何かが含まれているかどうかを確認するVBA
- VBA条件付き書式設定データバー「パーセント/進捗」
- セルに整数が含まれているかどうかを確認しようとすると、実行時エラー13型の不一致
- マルチページエラー:呼び出されたオブジェクトはクライアントから切断されました
- Excel呼び出しから範囲を参照して形式を変更する
- NVAと通信するために文字列の値を変更するためのVBAコードの変更
- listobject vbaをクエリする高速な方法
編集を許可しないようにシート保護が構成されている場合、保護されたシートを変更することはできません。ユーザーであってもVBAプロシージャであっても違いはありません。変更を加える前に保護を解除する必要があります。