我有一个工作簿(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中即已验证该连接不存在,便已进行验证。想法?
答案 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)
要完成这项工作,我必须在创建工作表后立即创建一个假的空白表,然后将数据粘贴到该表上。