我什至不确定这是否可能,而且 Google 没有为我提供任何信息。我有一个包含 C6:F12,G6:G8 数据的表格。我想插入一个按钮,将所有这些数据发送到另一个表的单个新行中。该表将位于工作表的更下方。根据我插入的图形的大小,第一组数据将在 50A:50AD 左右。
来自 G7 和 G8 的数据将合并并放置在 50A 中。然后 C6:F6 将进入 50B:50E,C7:F7 将进入 50F:50I,C8:F8 将进入 50J:50m,C9:F9 将进入 50N:50Q,C10:F10 将进入 50R:50U , C11:F11 将进入 50V:50Y,C12:F12 将进入 50Z:50AC,G6 将进入 50AD。
每次按下按钮时都会创建一个新行,因此第二组数据将在相同的列中,但在第 51 行,第 52 行中的第三组,依此类推。
一步步:
在您的工作簿中,点击Alt-F11打开 Visual Basic 编辑器 (VBE)
单击菜单中的插入 > 模块并将以下内容粘贴到大代码窗口中
Option Explicit
Sub copyRow()
Dim ws As Worksheet
Dim lRow As Long
' define which worksheet to work on, i.e. replace Sheet1 with the name of your sheet
Set ws = ActiveWorkbook.Sheets("Sheet1")
' determine the last row with content in column A and add one
lRow = ws.Cells(Rows.Count, "A").End(xlUp).Row + 1
' combine G7 and G8 and copy into column A, next empty row
ws.Range("A" & lRow) = ws.[G7] & " " & ws.[G8]
' copy the other cells into their ranges
ws.Range("C6:F6").Copy ws.Range("B" & lRow)
ws.Range("C7:F7").Copy ws.Range("F" & lRow)
ws.Range("C8:F8").Copy ws.Range("J" & lRow)
ws.Range("C9:F9").Copy ws.Range("N" & lRow)
ws.Range("C10:F10").Copy ws.Range("R" & lRow)
ws.Range("C11:F11").Copy ws.Range("V" & lRow)
ws.Range("C12:F12").Copy ws.Range("Z" & lRow)
ws.Range("G6").Copy ws.Range("AD" & lRow)
ws.[A1].Select
End Sub
Run Code Online (Sandbox Code Playgroud)关闭 VBE
在您的工作表中,插入一个按钮或一个形状。右键单击该形状并选择“分配宏”。选择名为“copyRow”的宏
在 A 列中,在单元格中放置一些文本以标记数据表的开头。然后单击 按钮,表的当前值和第 6 行到第 12 行的范围将被复制到下一个空行。
此方案基于这样的假设:每一个新的数据行在 G7 和 G8 中都有一些值,因此下表中的每一行在 A 列中都有一个值。

| 归档时间: |
|
| 查看次数: |
37259 次 |
| 最近记录: |