1
5枚(Sheet1、Sheet2、Sheet3、Sheet4、Sheet5)のブックを含むブック。私はこれらの数式を含むセルを保護し、今は "myfile"という名前の新しいブックにSheet1、Sheet2、Sheet3、およびSheet4のみを保存したい。最後に= "myfileの" ActiveWorkbook.Closeが、それは仕事をdoesntの: 新しいブックに保存ActiveXコントロールを含む5枚のうち4枚
Sub Protect()
Dim pwd As String, s As Long
pwd = InputBox("entrer a password", Title:="Password")
With ThisWorkbook
For s = 1 To 4
With .Worksheets("Sheet" & s)
.Copy
End With
With ActiveWorkbook
for i=1 to 4
With .Worksheets(i)
.UsedRange
On Error Resume Next
.Cells.SpecialCells(xlCellTypeBlanks).Locked = False
.Cells.SpecialCells(xlCellTypeConstants).Locked = False
.Columns("O").Hidden = True 'i want to hide it for each Sheet
.Columns("P").Hidden = True 'i want to hide it for each Sheet
.Columns("Q").Hidden = True 'i want to hide it for each Sheet
.Columns("R").Hidden = True 'i want to hide it for each Sheet
.Columns("S").Hidden = True 'i want to hide it for each Sheet
.Columns("T").Hidden = True 'i want to hide it for each Sheet
.Columns("U").Hidden = True 'i want to hide it for each Sheet
.Columns("V").Hidden = True 'i want to hide it for each Sheet
On Error GoTo 0
.protect pwd, True, True, True, True
End With
next i
End With
Next s
End With
.SaveAs Filename:="myfile" & s, FileFormat:=xlOpenXMLWorkbook
.Close SaveChanges:=False
End Sub
私は.SaveAsファイル名を追加します。どうすれば修正できますか?
...特定のシートを保存する方法についての例であり、上記のコードは、あなたに応じて達成したいアクションを反映していません役職。さらに、(1) 'With'文の外に' .Close'のような先頭のドット(2) '.Copy'をどこにでも貼り付けずに使う(3)' With'を使って1行だけのステートメント? (4)あなたの記事で "新しい"シート(1枚を意味する)に4枚のシートを "保存"していると述べました。どのようにあなたはそれについて(上記のコードで見ることができない)行きたいですか? – Ralph
@Ralph申し訳ありません、編集します。私は、 "myfile"という名前の新しいブックにSheet1、Sheet2、Sheet3、およびSheet4のみを保存します。 – John
次に、新しいブックを作成するためのコードを追加することができます(上記の問題に対処することに加えて)。また、シートを(コピーするだけでなく)どこかに '.Paste'するコードもあります。 – Ralph