Tag: 复制粘贴

如何在Excel和DataGridView组件之间实现复制/粘贴行为?

我如何完成能够将数据从Excel粘贴到DataGridView中,反之亦然?

为什么Excel VBA复制到剪贴板不一致?

我有一个非常简单的Excelmacros: 它在一个小窗口中显示当前date和时间。 它将显示复制为文本string,以根据需要粘贴到其他应用程序中。 显示的单元格中有以下公式: =TEXT(NOW(),"yyyy.MM.dd hh:mm:ss") macros5秒钟刷新时间和时钟滴答。 我的问题是,当我从单元格中复制时间时,我并不总是将内容粘贴到剪贴板。 有时单元格内容被张贴到剪贴板。 我无法弄清楚为什么它有时会起作用,而不是别人,因为没有太多事情要做。 它应该总是工作。 我知道数据不在剪贴板上,因为我可以尝试将剪贴板粘贴到不同的程序(如记事本和其他文本应用程序)中,而不会发生任何事情。 整个代码都在一个模块中。 Dim stopSwitch As Integer Dim NextTick Sub myupdate() If ActiveCell.Address = "$B$1" Then growWindow ' resize window beyond just clock display stopTime ' Exit Sub ' stop updating End If Range("a1").Select Calculate DoEvents If ActiveWorkbook.Name = "calendar clock.xlsb" Then shrinkWindow NextTick = […]

VBA将满足条件的行复制到另一个工作表

我是VBA的新手…如果第一个单元格在这一行中表示X,然后对所有满足这个条件的行都这样做,我想从Sheet2复制一行到Sheet1。 我在If条件中有一个错误…我不知道如何解决这个问题。 Sub LastRowInOneColumn() 'Find the last used row in a Column: column A in this example Worksheets("Sheet2").Activate Dim LastRow As Long With ActiveSheet LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row End With MsgBox (LastRow) For i = 1 To LastRow If Worksheet.Cells(i, 1).Value = "X" Then ActiveSheet.Row.Value.Copy _ Destination:=Hoja1 End If Next i End Sub

Excel VBA如何检测是否有东西被粘贴在工作表中

我首先要说的是,我在Excel和VBA上的经验仅限于我在学校看到的。 我有编程经验,但在其他语言。 我每个星期都有一个文件。 这个文件的结构总是一样的:ID,名称,date,值在1和4之间,不相关的数据。 这个数据是通过“全部select”button(工作表的左上angular,MS Excel 2013中的单元格名称下方的小三angular形)select的,然后复制到另一个默认文件中,该文件可以重新处理数据以基于1-4值和date。 我的问题:如何检测数据何时被粘贴? 我已经尝试了Worksheet.Change事件,但粘贴命令(CTRL + V)不会触发Change事件。 另外,如何复制数据? 它会逐行更新行,逐个单元格(哪个方向),…? 我知道,只要能检测到复制命令,我就可以通过debugging来轻松find最后一个问题的答案,但是你永远不知道是否有人知道答案。 还有其他更简单(或更好)的方法来做到这一点? 如果需要,可以提供更多的数据和信息。 感谢您的帮助。 编辑:'…有/正在被复制? 更改为粘贴,因为它应该已经。

范围类的CopyPicture方法失败 – 有时

我有一个VBA代码,我正在使用复制范围作为图片,并将其粘贴到图表中。 它这样做,所以我可以把它保存成图片。 这个代码有70%的成功率,当它不起作用时,它会发出错误“范围类的CopyPicture方法失败”。 我不明白为什么有时可以工作,有时候并没有给出相同的意见。 谁能帮忙? Public Sub ExportRange(workbookPath As String, sheetName As String, rangeString As String, savepath As String) Set tempWorkBook = Workbooks.Open(workbookPath) Dim selectRange As range Set selectRange = Worksheets(sheetName).range(rangeString) Dim numRows As Long numRows = selectRange.Rows.Count Dim numCols As Long numCols = selectRange.Columns.Count ' Transfer selection to a new sheet and autofit the […]

Datagridview.SelectedCells顺序

我正在处理一个C#应用程序,其中包含大量的空DataGridViews。 用户必须填写来自Excel的复制/粘贴数据。 我做的是以下几点: int i = 0; string s = Clipboard.GetText(); // Separate lines string[] lines = Regex.Split(s, "\r\n"); foreach (string line in lines) { // Separate each cell string[] cells = line.Split('\t'); foreach (string cell in cells) { // If we selected as many cells as copied if (dataGridView.SelectedCells.Count == (lines.Length-1)*(cells.Length)) { dataGridView.SelectedCells[i].Value = […]

Excel VBA仅复制粘贴值(xlPasteValues)

我试图将sheetA中的整个列复制到SheetB中。sheetA列具有用formuls形成的值。 我只使用xlPasteValues复制SheetA列值。 但它不会将值粘贴到另一个sheetB。 sheetB中的列是空的。 我的VBA代码 Public Sub CopyrangeA() Dim firstrowDB As Long, lastrow As Long Dim arr1, arr2, i As Integer firstrowDB = 1 arr1 = Array("BJ", "BK") arr2 = Array("A", "B") For i = LBound(arr1) To UBound(arr1) With Sheets("SheetA") lastrow = Application.Max(3, .Cells(.Rows.Count, arr1(i)).End(xlUp).Row) .Range(.Cells(1, arr1(i)), .Cells(lastrow, arr1(i))).Copy Sheets("SheetB").Range(arr2(i) & firstrowDB).PasteSpecial xlPasteValues End With […]

MS Excel复制单元格时添加换行符

当你复制一个单元格(不从单元格中select文本)并粘贴到任何编辑器的MS Excel 2010或2007或任何版本时,都会添加一个换行符并将光标发送到下一行。 它讨厌把光标向上移动到最后一行。 将光标移动到最后一行看起来并不需要太多的工作,但是如果作为一个程序员,我不得不继续这么做,那么我感觉真的很糟糕。 任何build议,如果在Excel中有一个设置来阻止这个? 我试图在网上找没有发现任何东西,也查找了Excel的选项,没有find任何东西。

将数据从SQL Server 2012复制到Excel时出现新行问题

我最近升级到SQL2012,并使用Management Studio。 数据库中的一个列中存储了一个CHAR(13) + CHAR(10) 。 当我使用SQL Server 2008时,这将完全复制到Excel中。 但是,现在,复制和粘贴相同的数据会在Excel中的数据中创build一个新的行/回车符。 SQL2012中有没有一个设置可以解决这个问题? 我不想简单地REPLACE(CHAR(13) + CHAR(10))在每一个数据库select,因为我不得不从SELECT *去定义每个单独的列。