尝试创建表在复制和粘贴后给出错误1004

时间:2019-03-20 17:20:24

标签: excel vba

我有一个工作簿(A),该工作簿拉起另一个(B),从wb B复制值并将值粘贴到wb A(没有表,没有公式;仅是数据)。

ActiveWorkbook.Sheets("Sheet1").Range("A1:F" & lonTempWBLastRow).Copy shtNewMonth.Range("A1") 

然后我尝试使用以下方法创建表:

Set NewMonthTable = wbPDRC.ListObjects.Add(xlSrcRange, Range("A1:F" & lonTempWBLastRow), , xlYes)

但出现错误1004:一个表不能与包含数据透视表,查询结果,受保护的单元格或另一个表的范围重叠。我从工作表中删除了命名范围,因此这不是命名范围问题。没有数据透视,查询结果,受保护的单元格或表。我什至尝试对未列出工作表中的所有表运行循环,但是该循环立即退出,因为它在工作表上看不到表。我也尝试首先在wb B上运行表代码,然后将其作为表VS值传输,但是尝试这种方式时,在该工作表上遇到了相同的错误。如果我尝试在不带VBA的Excel中制作表格,则多次单击“确定”后,表格格式对话框仍然保留。 wb B中有一个连接,在传输数据之前,我会通过代码删除该连接,并且一旦将其粘贴到wb A中即已验证该连接不存在,便已进行验证。想法?

2 个答案:

答案 0 :(得分:0)

我猜,问题在于该表已经存在,因此不能重新创建一个表。尝试这段代码,将“ Table1”更改为表的名称:

$('#SelectedFruit').on('change', function (e) {
   $('#SelectedVegetable').val('').trigger('change');
});

$('#SelectedVegetable').on('change', function (e) {
    $('#SelectedFruit').val('').trigger('change');
});

或者只是打开一个新的Excel文件并运行它。 Option Explicit Public Sub TestMe() Dim newTable As Object Dim someRange As Range With ThisWorkbook.Worksheets(1) Set someRange = .Range("A1:F" & 10) If Not TableExists("Table1", .Cells.Parent) Then Set newTable = .ListObjects.Add(xlSrcRange, someRange, , xlYes) End If End With End Sub Public Function TableExists(tableName As String, ws As Worksheet) As Boolean On Error GoTo TableExists_Error If ws.ListObjects(tableName).Name = vbNullString Then End If TableExists = True On Error GoTo 0 Exit Function TableExists_Error: TableExists = False End Function 范围将被格式化。

答案 1 :(得分:0)

要完成这项工作,我必须在创建工作表后立即创建一个假的空白表,然后将数据粘贴到该表上。

相关问题