0

ExcelにSheet(1)があるとします。これで、AからBOまでの列のデータを含む2500行もあります。次に、これらのシートから同じExcelファイルの別のシートに2500行のデータをコピーしますが、列全体ではなく、必要なのは新しいシートにコピーするAからAAデータへの列。

では、VBscriptを使用してフレーム化する方法は?

私を助けてください。

vbscriptを使用して1つのシートから別のシートに行をコピーする方法

4

3 に答える 3

4

あるシートから別のシートにデータをコピーするには、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

于 2012-12-06T16:37:06.830 に答える
1

このコードは正常に機能しています。コピーして貼り付けるだけです。

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()
于 2015-06-15T10:38:55.050 に答える
0
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

サブ終了

于 2013-09-15T13:40:44.183 に答える