解决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