Excel VBA,格式化/未知问题导致VBA无法工作
1) 我的vba将列从图纸a复制并粘贴到图纸b(表格) 2) 我的下一个vba代码在这个表的顶部运行,我得到一个错误 但是,如果我手动将问题标题和数据从工作表A复制并粘贴到工作表B,我的宏(2)将起作用 另外,我应该提到导致问题的这一列是带有日期的列。但是我尝试了两种格式,常规和日期,我尝试了使用公式(=SheetA!BU1:)并粘贴到第2页,我还尝试了宏来复制和粘贴这一列。。什么都不管用 不确定是否是我的代码、表格、格式等 这是我的复制粘贴宏,类型不匹配在这里不会发生,但在我的其他代码中没有出现Excel VBA,格式化/未知问题导致VBA无法工作,excel,vba,Excel,Vba,1) 我的vba将列从图纸a复制并粘贴到图纸b(表格) 2) 我的下一个vba代码在这个表的顶部运行,我得到一个错误 但是,如果我手动将问题标题和数据从工作表A复制并粘贴到工作表B,我的宏(2)将起作用 另外,我应该提到导致问题的这一列是带有日期的列。但是我尝试了两种格式,常规和日期,我尝试了使用公式(=SheetA!BU1:)并粘贴到第2页,我还尝试了宏来复制和粘贴这一列。。什么都不管用 不确定是否是我的代码、表格、格式等 这是我的复制粘贴宏,类型不匹配在这里不会发生,但在我的其他代码中没有出
Sub importtodatabase(from_ws, to_ws)
Dim rng As Range, trgtCell As Range
Dim src As Worksheet
Dim trgt As Worksheet
Set src = Worksheets(from_ws)
Set trgt = Worksheets(to_ws)
Dim row_num As Integer
Dim Max_row_data As Integer
Dim source_tab As String
Application.ScreenUpdating = False
Sheets(to_ws).Select
Max_row_data = get_max_row("")
If Max_row_data <> 2 Then
Max_row_data = Max_row_data + 1
End If
Sheets("Mappings").Select
max_row = get_max_row("")
With src
For Each rng In Intersect(.Rows(1), .UsedRange).SpecialCells(xlCellTypeConstants)
For row_num = 2 To max_row
If from_ws = Range("BU" & row_num).value Then
If rng = Range("BV" & row_num).value Then
rng = Range("BW" & row_num).value
Exit For
End If
End If
Next row_num
Set trgtCell = trgt.Rows(1).Find(rng.value, LookIn:=xlValues, lookat:=xlWhole)
'If .Range(rng.Offset(1), .Cells(ws.Rows.Count, "A").End(xlUp).row
If Not trgtCell Is Nothing Then
.Range(rng.Offset(1), .Cells(.Rows.count, rng.Column).End(xlUp)).copy
With trgt
.Cells(Max_row_data, trgtCell.Column).PasteSpecial xlPasteValues
End With
End If
'End If
Next rng
End With
Application.ScreenUpdating = False
End Sub
子导入数据库(从\u-ws到\u-ws)
变暗rng作为范围,trgtCell作为范围
Dim src As工作表
Dim trgt As工作表
Set src=工作表(从\u ws)
将trgt=工作表设置为
Dim row_num为整数
将最大行数据调整为整数
Dim source_选项卡作为字符串
Application.ScreenUpdating=False
图纸(至图纸)。选择
最大行数据=获取最大行(“”)
如果最大行数据为2,则
最大行数据=最大行数据+1
如果结束
图纸(“映射”)。选择
最大行=获取最大行(“”)
与src
对于Intersect(.Rows(1),.UsedRange).SpecialCells(xlCellTypeConstants)中的每个rng
对于行数=2到最大行数
如果from_ws=Range(“BU”和row_num).value,则
如果rng=范围(“BV”和行数)。则
rng=范围(“BW”和行数)。值
退出
如果结束
如果结束
下一行_num
设置trgtCell=trgt.Rows(1).Find(rng.value,LookIn:=xlValues,lookat:=xlWhole)
'If.Range(rng.Offset(1),.Cells(ws.Rows.Count,“A”).End(xlUp).row
如果不是trgtCell,则为空
.Range(rng.Offset(1),.Cells(.Rows.count,rng.Column).End(xlUp)).copy
与trgt
.Cells(最大行数据,trgtCell.Column)。粘贴特殊XLPaste值
以
如果结束
"完"
下一个rng
以
Application.ScreenUpdating=False
端接头
这个问题与前一个看起来非常相似的问题不同吗?类型不匹配发生在哪里?您还关闭了屏幕更新功能,没有包含您调用的函数。@QHarr,是的xD。我想我可以更新这个问题。类型不匹配发生在哪里?我们在哪里可以找到样本数据?这些是必要的,以便解决问题。下次请立即包含这些内容。@Luuklag,此代码中不会出现类型不匹配的情况。只是认为有人可能有问题列的经验。然后请编辑您的问题以避免混淆。