解决VBA循环中的名称冲突

解决VBA循环中的名称冲突,vba,excel,Vba,Excel,我有一个模块,可以解析来自多个工作表的多个工作簿的数据。然而,在循环过程中,我不断收到一条消息,表明名称已经存在,但无论我做了什么选择,它都会重复相同的消息。我已尝试在消息框中输入其他名称,但仍在重复。你知道我为什么收到这个消息吗 Sub parse() Dim WrkBookDest As Workbook Dim WrkBookSrs As Workbook Dim WrkSheetDest As Worksheet Dim WrkSheetSrs As Worksheet Set Wrk

我有一个模块,可以解析来自多个工作表的多个工作簿的数据。然而,在循环过程中,我不断收到一条消息,表明名称已经存在,但无论我做了什么选择,它都会重复相同的消息。我已尝试在消息框中输入其他名称,但仍在重复。你知道我为什么收到这个消息吗

Sub parse()
Dim WrkBookDest As Workbook
Dim WrkBookSrs As Workbook
Dim WrkSheetDest As Worksheet
Dim WrkSheetSrs As Worksheet

Set WrkBookDest = ThisWorkbook
FolderPath = "C:\attach\"
Filepath = FolderPath & "*.xlsx"
Filename = Dir(Filepath)

With WrkSheetSrs
WrkBookDest.Sheets("Sheet1").Range("A1") = .Range("A1").Value
WrkBookDest.Sheets("Sheet1").Range("A1").NumberFormat = .Range("A1").NumberFormat
WrkBookDest.Sheets("Sheet1").Range("B1") = .Range("A2").Value
WrkBookDest.Sheets("Sheet1").Range("B1").NumberFormat = .Range("A2").NumberFormat
WrkBookDest.Sheets("Sheet1").Range("C1") = .Range("B4").Value
WrkBookDest.Sheets("Sheet1").Range("C1").NumberFormat = .Range("B4").NumberFormat
WrkBookDest.Sheets("Sheet1").Range("D1") = .Range("B5").Value
WrkBookDest.Sheets("Sheet1").Range("D1").NumberFormat = .Range("B5").NumberFormat
WrkBookDest.Sheets("Sheet1").Range("E1") = .Range("B6").Value
WrkBookDest.Sheets("Sheet1").Range("E1").NumberFormat = .Range("B6").NumberFormat
WrkBookDest.Sheets("Sheet1").Range("F1") = .Range("B7").Value
WrkBookDest.Sheets("Sheet1").Range("F1").NumberFormat = .Range("B7").NumberFormat

End With

For i = 3 To 9
WrkBookDest.Sheets("sheet1").Range("G" & (i - 3) * 56 + 1) = WrkBookSrs.Sheets(i).Range("A2:C57").Value
Next
End Sub

正在复制的单元格之一是定义的名称(公式)► 定义名称► 名称管理器)。通过复制和粘贴,Excel认为您正在尝试创建一个新的、相同的命名范围。仅粘贴值。在单独的操作中更改

下面使用直接单元格值传输,然后进行跨单元格传输


正在复制的单元格之一是定义的名称(公式)► 定义名称► 名称管理器)。通过复制和粘贴,Excel认为您正在尝试创建一个新的、相同的命名范围。仅粘贴值。在单独的操作中更改

下面使用直接单元格值传输,然后进行跨单元格传输


正在复制的单元格之一是定义的名称(公式)► 定义名称► 名称管理器)。通过复制和粘贴,Excel认为您正在尝试创建一个新的、相同的命名范围。仅粘贴值。在单独的操作中更改。单独的操作是指模块吗?有关不涉及剪贴板的方法,请参见下文。您要复制的单元格之一是已定义的名称(公式)► 定义名称► 名称管理器)。通过复制和粘贴,Excel认为您正在尝试创建一个新的、相同的命名范围。仅粘贴值。在单独的操作中更改。单独的操作是指模块吗?有关不涉及剪贴板的方法,请参见下面的内容。类似的内容?我试图使用直接价值转移。如上所述,我不确定您为什么将我的代码复制到原始问题中,但是的,直接值传输和携带数字格式不涉及剪贴板,因此不会尝试复制定义的名称。类似这样的情况?我试图使用直接价值转移。如上所述,我不确定您为什么将我的代码复制到原始问题中,但是的,直接值传输和携带数字格式不涉及剪贴板,因此不会尝试复制已定义的名称。
'selecting cells from Title sheet and parsing them to main workbook
With WrkSheetSrs
    WrkBookDest.Sheets("Sheet1").Range("A1") = .Range("A1").Value
    WrkBookDest.Sheets("Sheet1").Range("A1").NumberFormat = .Range("A1").NumberFormat
    WrkBookDest.Sheets("Sheet1").Range("B1") = .Range("A2").Value
    WrkBookDest.Sheets("Sheet1").Range("B1").NumberFormat = .Range("A2").NumberFormat
    WrkBookDest.Sheets("Sheet1").Range("C1") = .Range("B4").Value
    WrkBookDest.Sheets("Sheet1").Range("C1").NumberFormat = .Range("B4").NumberFormat
    WrkBookDest.Sheets("Sheet1").Range("D1") = .Range("B5").Value
    WrkBookDest.Sheets("Sheet1").Range("D1").NumberFormat = .Range("B5").NumberFormat
    WrkBookDest.Sheets("Sheet1").Range("E1") = .Range("B6").Value
    WrkBookDest.Sheets("Sheet1").Range("E1").NumberFormat = .Range("B6").NumberFormat
    WrkBookDest.Sheets("Sheet1").Range("F1") = .Range("B7").Value
    WrkBookDest.Sheets("Sheet1").Range("F1").NumberFormat = .Range("B7").NumberFormat

End With

For i = 3 To 9
    WrkBookDest.Sheets("sheet1").Range("G" & (i - 3) * 56 + 1) = WrkBookSrs.Sheets(i).Range("A2:C57").Value
Next