Excel VBA-比较两个范围并扩展新范围

时间:2019-08-27 12:13:42

标签: excel vba

我正在检查两个范围以查看它们是否具有相同的大小。如果新范围小于旧范围,则我的宏会扩大范围以匹配旧范围。

Sub san_import(owb As String, nwb As String, imt As String)
    Dim orng As Range
    Dim nrng As Range
    Dim r_fix As Long
    Dim c_fix As Long

    Set orng = Workbooks(owb).Names(imt).RefersToRange
    Set nrng = Workbooks(nwb).Names(imt).RefersToRange

    r_fix = orng.Rows.Count - nrng.Rows.Count
    c_fix = orng.Columns.Count - nrng.Columns.Count

    If r_fix > 0 Then    
        With nrng
        .Rows(.Rows.Count + r_fix).EntireRow.Offset(-1, 0).Insert
        .Resize(.Rows.Count + r_fix, .Columns.Count).Name = .Name.Name
        End With

    End If

    If c_fix > 0 Then
        With nrng
        .Columns(.Columns.Count + c_fix).EntireColumn.Offset(-1, 0).Insert
        .Resize(.Rows.Count, .Columns.Count + c_fix).Name = .Name.Name
        End With

    End If

    Set nrng = Workbooks(nwb).Names(imt).RefersToRange
    nrng.ClearContents
    nrng.Value2 = orng.Value2

End Sub

但是,我在此行遇到应用程序定义的错误:

 .Resize(.Rows.Count + r_fix, .Columns.Count).Name = .Name.Name

关于为什么会发生这种情况的任何想法?另外,我不确定宏是否可以成功插入新行,在我的测试中似乎并非如此。

0 个答案:

没有答案
相关问题