excel - VBA:从表复制并粘贴以创建列表
问题描述
VBA 新手
我正在尝试从表中复制包含一个月的行并将它们粘贴到单元格中。但是,它们向上粘贴而不是向下粘贴。任何帮助表示赞赏。
Sub tblcopypast()
Dim Month As String
Dim tbl As ListObject
Dim i As Integer
Dim lastrow As Integer
Set tbl = ActiveSheet.ListObjects("Table1")
Month = ActiveSheet.Range("E1").Value
lastrow = tbl.ListRows.Count
For i = 1 To lastrow
If tbl.DataBodyRange(i, 2) = Month Then
tbl.ListRows(i).Range.Copy
ActiveSheet.Range("rng").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValuesAndNumberFormats
End If
Next
End Sub
解决方案
你ActiveSheet.Range("rng").End(xlUp).Offset(1, 0).PasteSpecial
的很棘手。尤其是在一个循环中。试试下面的代码:
Option Explicit
Sub tblcopypast()
Dim Month As String
Dim tbl As ListObject
Dim iCt As Integer
Dim jCt As Integer
Dim lastrow As Integer
Dim targetRange As Range
Dim actRange As Range
Set tbl = ActiveSheet.ListObjects("Table1")
Month = ActiveSheet.Range("E1").Value
lastrow = tbl.ListRows.Count
jCt = 0
Set actRange = ActiveCell
Set targetRange = ActiveSheet.Range("rng").End(xlUp).Offset(1, 0)
For iCt = 1 To lastrow
If tbl.DataBodyRange(iCt, 2) = Month Then
tbl.ListRows(iCt).Range.Copy
targetRange.Offset(jCt, 0).PasteSpecial xlPasteValues
jCt = jCt + 1
End If
Next
actRange.Select
End Sub
Sub DefineSamples()
'sample data I used to review your code!
Dim cell As Range
Range("M1") = "F1"
Range("N1") = "F2"
Range("O1") = "F3"
Range("P1") = "F4"
For Each cell In Range("M2:P12")
cell.Value = Int(Rnd() * 100)
Next cell
Range("E1").Value = "Jan"
Range("N3").Value = "Jan"
Range("N5").Value = "Jan"
Range("N7").Value = "Jan"
Range("N9").Value = "Jan"
Range("N10").Value = "Jan"
Range("N11").Value = "Jan"
On Error Resume Next
ActiveSheet.ListObjects.Add(xlSrcRange, Range("$M$1:$P$12"), , xlYes).Name = "Table1"
On Error GoTo 0
Range("Table1").HorizontalAlignment = xlCenter
End Sub
推荐阅读
- nuxeo - Nuxeo 自动化和自定义浓缩器
- python - 使用 SQLAlchemy 将 BLOB 流式传输到 MySQL
- c++ - Visual Studio Code 设置默认配置
- r - 在R中的两个数据框中按组比较日期
- reactjs - 将 Skyscanner 小部件与 React 集成
- node.js - 谷歌身份验证挂起等待响应
- amazon-web-services - 如何在 cognito 上创建自定义用户池,并将其连接到您的应用程序
- vim - 如何在vim中自动生成像IDEA这样的局部变量
- javascript - 加载动态 html jQuery 更改 GET 脚本路径
- macos - UNUserNotificationCenter 总是拒绝授权