ExcelにSheet(1)があるとします。これで、AからBOまでの列のデータを含む2500行もあります。次に、これらのシートから同じExcelファイルの別のシートに2500行のデータをコピーしますが、列全体ではなく、必要なのは新しいシートにコピーするAからAAデータへの列。
では、VBscriptを使用してフレーム化する方法は?
私を助けてください。
vbscriptを使用して1つのシートから別のシートに行をコピーする方法
ExcelにSheet(1)があるとします。これで、AからBOまでの列のデータを含む2500行もあります。次に、これらのシートから同じExcelファイルの別のシートに2500行のデータをコピーしますが、列全体ではなく、必要なのは新しいシートにコピーするAからAAデータへの列。
では、VBscriptを使用してフレーム化する方法は?
私を助けてください。
vbscriptを使用して1つのシートから別のシートに行をコピーする方法
あるシートから別のシートにデータをコピーするには、CopyenPasteSpecialコマンドを使用できます。スクリプトを使用してこれを.vbs
行うには、次のようにします。
' Create Excel object
Set objExcel = CreateObject("Excel.Application")
' Open the workbook
Set objWorkbook = objExcel.Workbooks.Open _
("C:\myworkbook.xlsx")
' Set to True or False, whatever you like
objExcel.Visible = True
' Select the range on Sheet1 you want to copy
objWorkbook.Worksheets("Sheet1").Range("A1:AA25").Copy
' Paste it on Sheet2, starting at A1
objWorkbook.Worksheets("Sheet2").Range("A1").PasteSpecial
' Activate Sheet2 so you can see it actually pasted the data
objWorkbook.Worksheets("Sheet2").Activate
VBSマクロを使用してExcelでこれを実行する場合は、コピーアンドペーストメソッドを呼び出すこともできます。ブックオブジェクトのみが次のようになりますActiveWorkbook
このコードは正常に機能しています。コピーして貼り付けるだけです。
Dim CopyFrom As Object
Dim CopyTo As Object
Dim CopyThis As Object
Dim xl As Object
xl = CreateObject("Excel.Application")
xl.Visible = False
CopyFrom = xl.Workbooks.Open("E:\EXCEL\From.xls")
CopyTo = xl.Workbooks.Open("E:\EXCEL\To.xls")
For i = 0 To 1
''To use a password: Workbooks.Open Filename:="Filename", Password:="Password"
If i = 0 Then
CopyThis = CopyFrom.Sheets(1)
CopyThis.Copy(After:=CopyTo.Sheets(CopyTo.Sheets.Count))
CopyTo.Sheets(3).Name = "Sheet3"
Else
CopyThis = CopyFrom.Sheets(2)
CopyThis.Copy(After:=CopyTo.Sheets(CopyTo.Sheets.Count))
CopyTo.Sheets(4).Name = "Sheet4"
End If
Next
CopyTo.Sheets(1).Activate()
CopyTo.Save()
'CopyTo.SaveAs("E:\EXCEL\Check.xls")
xl.Quit()
Sub buildMissingSheet(strMissingSheet) 'Just passing the missing sheet name in
' Master Sheet code
' Working on creating the "Master Sheet" at this time...May need to seperate the the code a little.
Dim GetRows1 As Worksheet
Dim GetRows2 As Worksheet
Dim PutRows As Worksheet
Dim sglRowNum As Single, i%
If strMissingSheet = strMASTERSHEET Then ' Create the strMASTERSHEET
Set GetRows1 = Sheets(strRAWDATA) ' These two sheets could be missing but will code around that later.
Set GetRows2 = Sheets(strDATAWITH) ' The two sheets I am getting rows from
'Worksheets.Add(After:= Worksheets(5))。Name = strMissingSheet Set PutRows = Sheets(strMissingSheet)'がない場合は、ここで新しいワークシートを作成するだけです。'宣言する前に、不足しているシートを作成する必要があります。
PutRows.Select 'Select the sheet being built.
With Cells(1, 1)
.Value = strRAWDATA 'Not copying rows here but left it in this example anyway
.AddComment
.Comment.Visible = False
.Select
.Comment.Text Text:= _
Chr(10) & "Name of sheet including header and the last 32 entries at the time this sheet was updated."
End With
'ここで、行全体を1つのシートから別のシートにコピーします。
GetRows1.Rows(1).Copy PutRows.Rows(2) 'Copy header row from existing sheet to "Master Sheet" for instance.
GetRows1.Select
sglRowNum = ReturnLastRow(ActiveSheet.Cells) 'return last row with data on active sheet
'データの最後の数行「32行」が欲しかったので、シートの最後にこのコードがインターネット上のこのサイトを含むいくつかの場所で見つかりました。
'これで、探していたコードが32行のデータを1つのシートから別のシートに移動します。
For i = 1 To 32 'Start at row 3 on the Put sheet after sheet name and header.
GetRows1.Rows(sglRowNum - (32 - i)).Copy PutRows.Rows(i + 2)
Next i
サブ終了