Excel VBA - скопировать строку из таблицы без последнего столбца - PullRequest
0 голосов
/ 12 февраля 2020

Я недавно преобразовал записи таблицы Excel в таблицу. У меня есть необходимость скопировать данные в PowerPoint, как показано в коде 1 ниже. Однако мне не нужна вся строка, только, скажем, все столбцы, кроме последнего в таблице 1 ниже.

Что касается таблицы 1, то следует скопировать следующее:

1  | Lorem 

Первоначально, когда это была не таблица, я мог просто делать то, что сейчас комментировалось. Но в настоящее время это таблица с ActiveSheet.ListObjects ("table1"). ListRows (1) .Range "Я могу выбрать только целые строки (я хочу, чтобы вся строка минус последний столбец). Добавление «.cells» за ним только выделяет конкретную c ячейку, а не строку.

Есть ли способ скопировать строку из таблицы без последнего столбца, или я должен изменить метод копирования и вставки?

Таблица 1 :

ID | SomeData | HashForUpdates 
1  | Lorem    | b1Z3p          
2  | Ipsum    | a832H    

Код 1

'Code 1
Dim ptApp As Object
Dim ptPres As Object
Dim ppSlide As Object
Dim totalCols As Integer

slideNo = 1
Set ptApp = CreateObject("PowerPoint.Application")
Set ptPres = ptApp.Presentations.Add
Set ptSlide = ptPres.Slides.Add(Index:=slideNo, Layout:=4)

totalCols = ActiveSheet.ListObjects("Table 1").ListColumns.Count    'ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column
totalCols = totalCols - 1

Set aShape = ptSlide.Shapes.AddTable(1, totalCols)
Set Rng = ActiveSheet.ListObjects("table1").ListRows(1).Range 'ActiveSheet.Range(Cells(1, 1), Cells(1, totalCols))
Rng.Copy
aShape.Table.Cell(1, 1).Shape.Select
ptApp.ActiveWindow.View.Paste

1 Ответ

3 голосов
/ 12 февраля 2020

Использование Resize.

Set rng = ActiveSheet.ListObjects("table1").ListRows(1).Range.Resize(,totalCols)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...