- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我收到此类型的错误:
我的目标是从另一个工作表(在另一个工作簿中)复制数据,并将其粘贴到我的主工作簿/工作表中的现有表中。首先,我清除数据,然后插入新数据。我遍历的每个工作表在主工作簿中都有一个对应的工作表。每张纸只有1个列表对象(表)。
到目前为止,以下代码已实现(这似乎与我当前的问题有关):
Option Explicit
'Declaring all public variables and constants
' Strings
Public InputPath As String
Public OutputPath As String
Public DataFile As String
' Integers
Public i As Integer
Public j As Integer
Public k As Integer
Public fr As Integer
Public fc As Integer
Public lr As Integer
Public lc As Integer
' Workbooks and worksheets
Public Wkb As Workbook
Public Ws As Worksheet
Public Tws As Worksheet
'Objects, ranges, arrays
Public NewData As Range
Public tbl As ListObject
Sub main()
' This sub is used to set public variables
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
InputPath = "MyInputPath\"
OutputPath = "MyOutputPath\"
DataFile = "MyFile.xlsx"
Call UpdateData
ThisWorkbook.Sheets(1).Activate
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Sub UpdateData()
' This sub updates data (fetching new sheets from generated Excel-file)
' Updating sheets
Application.DisplayAlerts = False
Workbooks.Open Filename:=OutputPath & DataFile
Set Wkb = Workbooks(DataFile)
With Wkb
k = .Worksheets.Count
For i = 1 To k ' Number of default worksheets to all worksheets
For Each Ws In ThisWorkbook.Worksheets
If .Worksheets(i).Name = Ws.Name Then ' Finding matching worksheet
Set Tws = .Sheets(i)
Set tbl = Ws.ListObjects(1)
With tbl ' Deleting data from current table in the worksheet
If Not .DataBodyRange Is Nothing Then
.Rows.Delete
End If
End With
fr = WorksheetFunction.Match("ConsistentKeyword", Ws.Columns(1), 0) - 3 ' First row
fc = 1 ' First column
lc = Tws.Cells(fr, fc).End(xlToRight).Column ' Last column
lr = Tws.Cells(fr, fc).End(xlDown).Row - 3 ' Last row
Set NewData = Tws.Range(Tws.Cells(fr, fc), Tws.Cells(lr, lc))
NewData.Copy
tbl.DataBodyRange.PasteSpecial xlPasteValues '<--- OBS ERROR IS IN THIS LINE
Application.CutCopyMode = False
End If
Next Ws
Next i
.Close SaveChanges:=False
End With
Application.DisplayAlerts = True
End Sub
tbl.DataBodyRange.PasteSpecial xlPasteValues
Ws.Activate
tbl.Range(2, 1).Select
Selection.PasteSpecial xlpastevalues
tbl.DataBodyRange(1, 1).PasteSpecial xlPasteValues
最佳答案
通过在.ListRows.Add
子句中添加with tbl
行并进行设置(以保持源格式),我的代码可以工作:
NewData.Copy
tbl.DataBodyRange(1, 1).PasteSpecial
关于excel - VBA : Copying data into existing listobject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54769927/
在我的一个工作表中,我有一个 Private Sub BuggingVba() 那应该将表中的数据替换为值数组 Dim MyTable As ListObject, myData() As V
我正在努力寻找一种从 ListObject 表中删除过滤/隐藏行的方法。 过滤不是通过代码执行的,而是由用户使用表头过滤器执行的。我想在取消列出 ListObject 表并执行小计操作之前删除过滤/隐
我需要访问工作簿的所有工作表中所有列表对象的选定事件,但是当我访问 worksheet.listobject 时,该对象显然属于 Microsoft.Office.Interop.Excel.List
是否可以同时过滤单个表中的多个字段? 我有一个过滤器,但不确定如何添加第二个字段。 wS.ListObjects("StructureTable").Range.AutoFilter Field:=1
我有一个 Excel 表格,其中包含一个标题行和一个数据正文行。我想计算数据主体行数。当我试图检查我的表有多少行时 Set myWorkSheet= ActiveWorkbook.Worksheets
如果我循环浏览工作表并想要测试给定工作表中是否存在任何 ListObject,我该如何执行此操作?我试过这个: Dim daysoftheweek As Worksheet For Each days
我有这个当前函数,它在遍历表时清除第 2 列值等于 -1 的行。我遇到的问题是我不想检查表中的最后一行。我该怎么做呢? foreach (Excel.ListRow lr in xlWorkBook.
如何简单地将数组中的值写入整个 ListObject一次列(仅数据行,不包括标题)?我找到了一个解决方案,但我认为它不漂亮: ' needs: ActiveSheet with ListObject
我试图让我的代码仅通过表引用范围(这样如果我从表中添加或删除列,代码将不会更改)。 我有一个名为 MyTable 的表。 此表有一个标题“MyHeader”。 在这里,我得到了表格的最后一行: dim
我有一个名为 UFCustInfo 的用户表单。在工作表区域,我有一个宏来显示表单 - Private Sub CmdShowInputForm() UFCustInfo.Show End S
我正在使用下面的代码来查找 ListObject 中最后一个可见行的 Sheet.Row。它似乎工作正常,但我想知道当 ListObject 非常大时是否有更快的方法来做到这一点。 干杯 Functi
我从 D3 单元格开始在工作表上添加一个新的 ListObject,然后创建列并将它们与 XMLMap 绑定(bind)。这是我的代码: Excel.Worksheet she
我正在尝试将 listobject 过滤数据提取到新工作簿。但是,会提取所有数据,而不仅仅是过滤后的数据。 Set loop_obj = wsCopy.ListObjects(1) loop_obj.
我想遍历Table1的一列,如果Table2的同一列名中缺少该值,则将其插入Table2的末尾。 下面的代码从 Table1 中插入确切的行数,但它只插入最后一行的值。 例如表格1: 列名 值(val
我有一个用户表单,用于将新数据行输入到同步到 Sharepoint 列表的动态表中。我只需要用于删除表中事件行的 VBA 代码。 我知道此代码用于删除表中的特定行: Selection.ListObj
我正在尝试编写一个宏,它遍历工作簿中的所有表,然后将每个表的名称以“TableName[#All]”的形式添加到数组中。 请参阅下面不完整的代码 Sub NewShopPage() ' ' Macro
我有一个包含约 500 行的 ListObject 表,在命名范围内还有 4 个值。 对于 500 行,可能有 30 个重复(随机)出现的唯一值,我想删除其值不在指定范围内的所有行。 我有以下工作,但
如何将记录集中的数据填充到列表对象中? 下面的代码不完全工作: oCN.ConnectionString = "DRIVER={SQL Server};Server=SRVSQL;Database=T
我有一个事件会触发 lambda 代码,该代码会尝试列出一个存储桶中的所有对象,然后将它们复制到另一个存储桶。 通过事件调用处理程序的代码 const cfnHandlerWrapper = asyn
我有一个名为 yourArray 的数组。 var yourArray = []; 当我从 s3 获取带有 listObjects 的对象名称时,我想将此对象名称推送到数组中。 var params
我是一名优秀的程序员,十分优秀!