Я полностью растерялся здесь.Недостаточно, чтобы даже попытаться написать это.Вот что я надеюсь достичь:
В рабочей книге у меня есть макрос, который извлекает данные из CSV-файла и копирует их в рабочую таблицу «Основные данные» и снова в рабочую таблицу «Temp» с одновременным форматированием.заголовки в «Temp» к тому, что мне нужно (строки A и B, которые должны оставаться постоянными на всех листах. Это прошло (с некоторой помощью от вас) хорошо. Макрос затем создает x количество пустых листов на основе input.boxТеперь мне нужно написать две вещи:
Скопировать первые две строки из таблицы «Temp» во все пустые таблицы, созданные input.box (число не определено, так как оно не будетконстанта)
Вырезать и вставлять диапазон данных от строки C до конца данных в таблице «Temp», строка за строкой, на все таблицы, созданные input.box, чтобы строка Cкопируется в первую пустую строку в sheet2, строка D - в первую пустую строку в sheet3 и т. д. до тех пор, пока не будет больше данных, которые будут вырезаны и вставлены. Необходимо будет перебрать все листы в книге, которыеимеют имена по умолчанию (sheet2, sheet3 и т. д.).В книге не будет более 10 таких листов.
Честно говоря, я даже не знаю, с чего начать, я не очень хорош в циклах, особенно тех, которые кажутся такими сложными, как этаодин.
Вот что мне удалось собрать до сих пор.Просто пара модулей, которые помогут мне написать выше.Я понимаю, что мой код не элегантен, его части тоже не мои, так как я уже просил о помощи здесь и получил его.
Sub Import_CSV_File()
Dim ws As Worksheet, strFile As String
Set ws = ActiveWorkbook.Sheets("Sheet1")
strFile = Application.GetOpenFilename("Text Files (*.csv),*.csv", ,
"Please select .csv file...")
With ws.QueryTables.Add(Connection:="TEXT;" & strFile,
Destination:=ws.Range("A1"))
.TextFileParseType = xlDelimited
.TextFileCommaDelimiter = True
.Refresh
ActiveSheet.Name = "Master Data"
Worksheets("Master Data").Rows(2).EntireRow.Delete
End With
End Sub
Sub Sort_Data_by_Price_Descending()
Columns("A:Q").Sort key1:=Range("G:G"), order1:=xlDescending,
Header:=xlYes
End Sub
Sub Create_Sheet_and_Copy_Master_Data()
Dim ws As Worksheet
With ThisWorkbook
Set ws = .Sheets.Add(After:=.Sheets(.Sheets.Count))
ws.Name = "Temp"
Sheets("Master Data").Cells.Copy Destination:=Sheets("Temp").Range("A1")
Range("A1:Z1") = Array("Code", "Carrier", "Operator", "CardNo", "ExpDate", "Comment1", "OrdAmount", "OrdNo", "OrdDate", "CustNo", "DOB", "Name", "Add1", "Add2", "Add3", " ", " ", " ", "Redline", "ISS", "CCN", "Add Links", "AVS", "Referrals", "Comments", "Verified?")
Rows("1:1").Insert Shift:=xlDown, _
CopyOrigin:=xlFormatFromLeftOrAbove
Range("A1:K1") = Array("Batch No.", " ", "Carrier", " ", "Orders", " ", "Start Time", " ", "End Time", " ", "Batch ID")
End With
End Sub
Sub AddSheets_via_Input_Box()
Dim numberOfSheets As Integer
numberOfSheets = CInt(Trim$(InputBox("...how many people are working Fraud Today?", "Tell me…", 1)))
If IsNumeric(numberOfSheets) Then
With ActiveWorkbook
.Sheets.Add After:=.Sheets("Temp"), Count:=numberOfSheets
End With
Else
MsgBox "Invalid parameter supplied - use numbers only"
End If