0
私はvbaの全く新しい初心者です。 他のワークブックからいくつかのシートを1枚のシートにインポートできました。 しかし、私は書式を維持し、また、インポートされているセルの色を保持したいと思います。 これはSOFAR私のコードです:Excel vba複数のシートを1枚のシートにインポートしてフォーマットを維持する
Public strFileName As String
Public currentWB As Workbook
Public dataWB As Workbook
Public strCopyRange As String
Sub delData() 'Clears MasterData except 1st line
Dim ws As Worksheet
For Each ws In Worksheets
Select Case ws.Name
Case Is = "List", "Sheet1"
' Do Nothing
Case Else
ws.UsedRange.Offset(1).ClearContents
End Select
Next ws
End Sub
Sub GetData()
Dim strWhereToCopy As String, strStartCellColName As String
Dim strListSheet As String
strListSheet = "List"
On Error GoTo ErrH
Sheets(strListSheet).Select
Range("B2").Select
'this is the main loop, we will open the files one by one and copy their data into the masterdata sheet
Set currentWB = ActiveWorkbook
Do While ActiveCell.Value <> ""
strFileName = ActiveCell.Offset(0, 1) & ActiveCell.Value
strCopyRange = ActiveCell.Offset(0, 2) & ":" & ActiveCell.Offset(0, 3)
strWhereToCopy = ActiveCell.Offset(0, 4).Value
strStartCellColName = Mid(ActiveCell.Offset(0, 5), 2, 1)
Application.Workbooks.Open strFileName, UpdateLinks:=False, ReadOnly:=True
Set dataWB = ActiveWorkbook
Range(strCopyRange).Select
Selection.Copy
currentWB.Activate
Sheets(strWhereToCopy).Select
lastRow = LastRowInOneColumn(strStartCellColName)
Cells(lastRow + 1, 1).Select
Selection.PasteSpecial xlPasteValues, xlPasteSpecialOperationNone
Application.CutCopyMode = False
dataWB.Close False
Sheets(strListSheet).Select
ActiveCell.Offset(1, 0).Select
Loop
Exit Sub
ErrH:
MsgBox "It seems some file was missing. The data copy operation is not complete."
Exit Sub
End Sub
Public Function LastRowInOneColumn(col)
'Find the last used row in a Column: column A in this example
Dim lastRow As Long
With ActiveSheet
lastRow = .Cells(.Rows.Count, col).End(xlUp).Row
End With
LastRowInOneColumn = lastRow
End Function
My機能のGetData()既存のデータを上書きdoesntの - 私は回避策を作り、機能DELDATAを(作成)。 GetData関数を既存のデータを上書きするようにするにはどうすればよいですか? そして、私がインポートしたシートの書式と色を維持したいと思います。また、古いデータ/色を上書きする必要があります。
私は本当にこれが誰かに理にかなって願っています。o) どれアドバイスが最も おかげで...
をあれば動作するようです古い行を新しい行に置き換える代わりに、両方の行を保持します。私は特定の色で細胞を隠す方法を知っていますか? SortやFiltreと同じですが、特定の色のセルを隠すことができます。 – Brian
特定の色でセルを隠すことについては心配しないでください。私はソートとフィルタでこれを行っています。お手伝いありがとう。私は本当にそれを感謝する:o) – Brian