Вставить из Excel в текстовое поле - PullRequest
2 голосов
/ 04 мая 2009

Я хочу скопировать некоторые данные из файла Excel в текстовое поле в приложении win. Копирование вставки работает нормально, если ячейки являются непрерывными, но если я выберу (с помощью CTRL) первую и третью ячейки, когда я вставлю ее в текстовое поле, будет вставлена ​​и вторая ячейка. Каков наилучший способ получить только те клетки, которые мне интересны? Спасибо

Ответы [ 3 ]

0 голосов
/ 04 мая 2009

Обойти это невозможно, так как Excel взаимодействует с окнами. Вам нужно будет либо скопировать / вставить каждую ячейку отдельно, либо скопировать / вставить, а затем удалить лишнее значение.

Если это повторяющееся задание, вы можете рассмотреть возможность его написания. Существует множество доступных вариантов сценариев, которые будут зависеть от вашего уровня квалификации и ОС, на которой вы работаете.

Если вы не склонны писать, скажем, vbscript для этого, вы можете рассмотреть бесплатную программу, такую ​​как shortkeys . Это инструмент для замены текста, и поскольку все операции копирования / вставки можно выполнять с помощью клавиатуры, это может быть более простой альтернативой.

0 голосов
/ 05 мая 2009

Я мог бы придумать, как решить эту проблему .. Если ваш исходный файл Excel является согласованным и не генерируется каким-либо другим инструментом / макросом или веб-страницей, и если вы можете добавить в него макросы, то вы можете попробовать его.

Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
Dim oSelection As Range, oWorkbook As Workbook
Application.ScreenUpdating = False  
Set oSelection = Selection
Set oWorkbook = Application.Workbooks.Add
Application.Windows(oWorkbook.Name).Visible = False
oWorkbook.Sheets(1).Paste
oWorkbook.Sheets(1).Range("A1:" & oWorkbook.Sheets(1).Cells(500, 1).End(xlUp).Address).Copy
oWorkbook.Close False
Application.ScreenUpdating = True
End Sub

Но после написания этого я не уверен, сработает ли «Деактивация окна», если вы переходите из Excel в другое приложение Windows. Я думаю, это произойдет, только если вы перейдете в другое окно файла Excel.

0 голосов
/ 04 мая 2009

Единственный способ, который я нашел, - это скопировать два интересных столбца, заново вставить их рядом друг с другом где-нибудь в Excel, (как новая электронная таблица), скопировать и вставить в текстовое поле.

Текстовые поля на самом деле не предназначены для данных, которые находятся в виде сетки. Если вы создаете текстовое поле, я рекомендую вместо этого попробовать какой-нибудь элемент управления видом сетки.

Если вам необходимо использовать текстовое поле, я также рекомендую вставить данные с каким-либо разделителем, таким как запятые, для разделения данных в строках, иначе будет трудно работать с ним, когда он будет извлечен из поля.

...