Я новичок в работе с базой данных Excel, и я хочу иметь возможность щелкнуть по кнопке и сгенерировать из нее CSV-файл, чтобы он мог быть в формате, который можно вводить в другую базу данных SQL (а также люди будут останавливаться вручнуюкопирование и вставка из него!).
Код, созданный мной с помощью других форумов, позволяет копировать объемные данные и генерировать заголовок.
Sub Button3_Click()
Dim srminsampls_test_csv As String
Dim Minsamps As Workbook
Dim CSV As Workbook
Dim copyRng As Range
Dim rng1 As Range
Dim rng2 As Range
Application.DisplayAlerts = False
On Error GoTo err
Set Minsamps = ThisWorkbook
srminsampls_test_csv = Minsamps.Path & "\" & "CSV-Exported-File-" & VBA.Format(VBA.Now, "dd-MMM-yyyy hh-mm") & ".csv"
'to select and copy the assay data:'
Set rng1 = Cells.Find("", [C4], xlFormulas, xlByRows, xlPrevious)
Set rng2 = Cells.Find("", [F4], xlFormulas, xlByColumns, xlPrevious)
If Not rng1 Is Nothing Then
Set copyRng = Range([C4], Cells(rng1.Row, rng2.Column))
Else
MsgBox "sheet is blank", vbCritical
End If
copyRng.Copy
'create the new sheet
Set CSV = Application.Workbooks.Add(1)
With CSV
.Sheets(1).Range("A12").PasteSpecial xlPasteValues
'insert the csv header
.Sheets(1).Range("A1").Select
.Sheets(1).Range("A1").FormulaR1C1 = "Report_No"
.Sheets(1).Range("A2").Select
.Sheets(1).Range("A2").FormulaR1C1 = "No_Samples"
.Sheets(1).Range("A3").Select
.Sheets(1).Range("A3").FormulaR1C1 = "DATE_RECEIVED"
'etc etc...there are many many lines of similar code here!
'save and generate file
.SaveAs Filename:=myCSVFileName, FileFormat:=xlCSV, CreateBackup:=False
.Close
End With
err:
Application.DisplayAlerts = True
End Sub`
Позволяет отображать заголовок DATE_RECEIVED,но я не знаю, как скопировать значение из исходного листа (Minsamps) и вставить его в ячейку рядом с DATE_RECEIVED.Все, что я делаю, либо останавливает работу заголовка и другого кода копирования / вставки, либо весь лист выходит пустым.Извините, если это очень просто, но я просто не могу разобраться.Спасибо, EJ