BASSIES Ответов: 1

2 datagridviews на 1 лист excel


Привет,

С помощью этого я копирую datagridview в строку cetain на листе excel.

Private Sub copyAlltoClipboard()
      DataGridView1.SelectAll()
      Dim dataObj As DataObject = DataGridView1.GetClipboardContent()
      If dataObj IsNot Nothing Then Clipboard.SetDataObject(dataObj)
  End Sub

  Private Sub Crew2()
      copyAlltoClipboard()
      Dim xlexcel As Excel.Application
      Dim xlWorkBook As Excel.Workbook
      Dim xlWorkSheet As Excel.Worksheet
      xlexcel = New Excel.Application
      xlexcel.Visible = True
      xlWorkBook = xlexcel.Workbooks.Open("C:\weg\Jaja.xlsx")
      xlWorkSheet = xlWorkBook.Worksheets(1)

      Dim CR As Excel.Range = xlWorkSheet.Cells(12, 3)
      CR.PasteSpecial()

  End Sub


Но я то, что вставить Datagridview2 также в этот лист excel.

Как мне найти следующую пустую строку или вставить 2 вида datagridviews за 1 раз ?

Что я уже пробовал:

Не знаю, как это исправить

Или, может быть, объединить 2 datagridview в один ? прежде чем вставить

Maciej Los

Привязаны ли DataGridViews к данным или нет?

BASSIES

Это работает , найти последнюю строку, но это медленно

Частный суб copyAlltoClipboard()
DataGridView1.SelectAll()
Дим dataObj как объект dataObject = DataGridView1.GetClipboardContent()
Если dataObj-это не что иное, как буфер обмена.SetDataObject(dataObj)
Конец Подводной Лодки
Частная суб copyAlltoClipboard2()
DataGridView2.SelectAll()
Дим dataObj как объект dataObject = DataGridView2.GetClipboardContent()
Если dataObj-это не что иное, как буфер обмена.SetDataObject(dataObj)
Конец Подводной Лодки

Частный Подводный Экипаж2()
copyAlltoClipboard()
Dim xlexcel как Excel.Приложение
Тусклый xlWorkBook как Excel.Рабочая тетрадь
Тусклый xlWorkSheet как Excel.Рабочий лист
xlexcel = новый Excel.Приложение
xlexcel.Видимое = Истинное
xlWorkBook = xlexcel.Рабочая тетрадь.Открыть("C:\weg\Verbruik.xlsx")
xlWorkSheet = xlWorkBook.Рабочие листы(1)

Тусклый CR как Excel.Диапазон = xlWorkSheet.Ячейки(37, 1)
CR.PasteSpecial()


Dim lastRow As Integer = xlWorkSheet.UsedRange.Rows.Рассчитывать

Dim emptyRow As Integer = lastRow + 3

lastRow = xlWorkSheet.UsedRange.Rows.Рассчитывать
- Это следующая пустая строчка в простыне.
emptyRow = lastRow + 3
copyAlltoClipboard2()

Dim CR1 как Excel.Диапазон = xlWorkSheet.Ячейки(пустые, 1)
Также CR1.PasteSpecial()


xlWorkBook.Сохранить Как("C:\weg\Verbruik1.xlsx")
xlWorkBook.Закрывать()
Конец Подводной Лодки

BASSIES

Есть ли лучший способ , и не из базы данных.

1 Ответов

Рейтинг:
1

Richard MacCutchan

Почему вы используете буфер обмена, когда вы можете копировать данные напрямую? Смотрите мое предложение по адресу Re: загрузите xlsx filr из папки и запишите в новую книгу - доски обсуждений Visual Basic[^]