私は新しいブックを作成し、ディレクトリ内のファイルを開き、対応するシートと値を新しいブックに追加します。私は "Copy Destination:="または他の範囲と等しい範囲を示すように多くのフォームを見てきましたが、私はスクリプトの仕事を得ることができません。 Elseシナリオの "Workbooks(FileName).Close"の直前のこの1行を除き、すべてが動作しています(これは単なるスニペットなので、98%信頼しています)。私は通常、私の答えを見つけてそれを理解しますが、ここでタオルを入れます。助けてください!あるブックから別のブックへセルの範囲をコピーする正しい構文は何ですか?
Dim SiteUsedCheck As Boolean
Dim NewBook As Workbook
Dim NewSheet As Worksheet
Dim SaveAsName As String
Dim WeekRange As Range
Set WeekRange = Range("I5:O17")
SaveAsName = "Invoice" & "_" & Home.Range("C23").Value & ".xlsm"
MsgBox SaveAsName
Set NewBook = Workbooks.Add
With NewBook
Do While FileName <> "" '<---recall FileName variable looks at excele books; it ignores folders
Workbooks.Open (Directory & FileName)
If Workbooks(FileName).Worksheets("TotalHours").Cells(SecretTest, WeekCol) = 0 Then
Workbooks(FileName).Close
Else
Dim TempSheetName As String
Set NewSheet = .Sheets.Add(After:=.Sheets(.Sheets.Count))
TempSheetName = Workbooks(FileName).Worksheets("TotalHours").Range("B2").Value
NewSheet.Name = TempSheetName
NewBook.Sheets(TempSheetName).Range("A1").Value = Workbooks(FileName).Sheets("TotalHours").Range("WeekRange") '<--This is the line that keeps getting an error. But if I put a "1" on the right side of the = it works. So what's wrong with this tiny piece?
Workbooks(FileName).Close
End If
FileName = Dir()
Loop
.SaveAs FileName:= _
InvoiceDirectory & SaveAsName _
, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Workbooks(SaveAsName).Close
End With
「SecretTest」または「WeekCol」に値を割り当てていないようですか? – SJR
私は間違った行を見ていました。 'Range(" WeekRange ")'は名前付き範囲ではないので間違っていますが、なぜ単一のセルの値を範囲に設定しようとしていますか? – SJR
ああ、私はあなたが1つのセルに、このセル(この場合はA1)全体の範囲を置くことができると思った上にコピーされたすべての左上になります。上記のスニペットでは、WeekRangeはそれが何週あるかに基づいて定義されています。私はWeekRangeのために私が使っていたものを知っているので、一例しか書いていません –