2

我想将一些数据从 excel 文件复制到 win 应用程序中的文本框。如果单元格是连续的,则复制粘贴可以正常工作,但是如果我选择(使用 CTRL)第一个和第三个单元格,当我将其粘贴到文本框时,它也会粘贴第二个单元格。获得我感兴趣的细胞的最佳方法是什么?谢谢

4

3 回答 3

0

我发现的唯一方法是复制两个有趣的列,在 Excel 中的某个位置重新粘贴它们,(就像一个新的电子表格)重新复制,然后粘贴到文本框中。

文本框确实不适用于网格视图中的数据。如果您正在创建文本框,我建议您尝试使用某种网格视图控件。

如果您必须使用文本框,我还建议使用某种分隔符(如逗号)粘贴数据,以将数据分隔成行,否则当它从框中拉出时将很难使用。

于 2009-05-04T15:50:13.487 回答
0

没有办法解决这个问题,因为这正是 Excel 与窗口交互的方式。您将需要单独复制/粘贴每个单元格,或者复制/粘贴然后删除多余的值。

如果这是一项重复性任务,您可以考虑编写脚本。有大量可用的脚本选项,这些选项取决于您的技能水平和您正在运行的操作系统。

如果你不想为此编写一个 vbscript,你可以考虑一个像shortkeys这样的免费程序。这是一个文本替换工具,由于您的复制/粘贴都可以使用键盘完成,因此这可能是一个更简单的选择。

于 2009-05-04T15:53:20.153 回答
0

我可以想出一种方法来解决这个问题。如果您的源 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 应用程序是否会触发 Window Deactivate。我认为只有当您切换到另一个 Excel 文件窗口时才会发生这种情况。

于 2009-05-05T04:00:54.367 回答