写一个EXCEL公式,查找C:\Users\DELL\Desktop\ZTE TRUCK\ZTE PK ORDER工作表里,ZTE PK ORDER工作簿C列在工作簿 仓库地址 的A列是否有一样的内容,如果有,就将对应的工作簿 仓库地址 里对应的B列内容作为结果输出,如果对应多个,就换行显示多个结果
时间: 2023-08-16 16:06:09 浏览: 96
请尝试使用以下公式:
```
=IFERROR(INDEX('[C:\Users\DELL\Desktop\ZTE TRUCK\ZTE PK ORDER.xlsx]ZTE PK ORDER'!$B$2:$B$1000,SMALL(IF('[C:\Users\DELL\Desktop\ZTE TRUCK\ZTE PK ORDER.xlsx]ZTE PK ORDER'!$A$2:$A$1000=A2,ROW('[C:\Users\DELL\Desktop\ZTE TRUCK\ZTE PK ORDER.xlsx]ZTE PK ORDER'!$A$2:$A$1000)-ROW('[C:\Users\DELL\Desktop\ZTE TRUCK\ZTE PK ORDER.xlsx]ZTE PK ORDER'!$A$2)+1),ROW(1:1))), "")
```
请注意,这是一个数组公式,需要使用Ctrl + Shift + Enter键进行输入。同时,需要根据实际情况修改工作簿名称、工作表名称、列号等参数。
相关问题
写一个EXCEL宏,查找文件夹C:\Users\DELL\Desktop\ZTE FILES\ORG_FILES里所有的文件名,将他们按文件夹排序放入C:\Users\DELL\Desktop\ZTE FILES文件夹下的工作表''ZTE FILES'里的工作簿'ZTE RENAME'的C2:C单元格里,复制C:\Users\DELL\Desktop\ZTE FILES\ORG_FILES所有的文件,放入C:\Users\DELL\Desktop\ZTE FILES\NEW_FILES文件夹里,工作簿'ZTE RENAME'C列和H列有对应关系,C列C2:C单元格内容和ORG_FILES文件夹里的文件的文件名一致,根据工作簿'ZTE RENAME'里H列单元格和C列单元格的对应关系,用H列单元格的内容重命名在工作簿'ZTE RENAME'C2:C单元格有一致对应关系的NEW_FILES文件夹里的文件的文件名.
以下是一个基本的Excel宏,可以完成你的要求。在运行宏之前,请确保已经创建了名为“ZTE RENAME”的工作簿和名为“ZTE FILES”的工作表,并且在“ZTE RENAME”工作簿中已经填写了C2列和H2列的对应关系。
Sub RenameFiles()
'设置文件路径和文件名
Dim orgPath As String
Dim newPath As String
Dim orgFile As String
Dim newFile As String
orgPath = "C:\Users\DELL\Desktop\ZTE FILES\ORG_FILES\"
newPath = "C:\Users\DELL\Desktop\ZTE FILES\NEW_FILES\"
'打开工作簿和工作表
Dim wb As Workbook
Set wb = ThisWorkbook
Dim ws As Worksheet
Set ws = wb.Sheets("ZTE FILES")
'查找文件夹中的所有文件名
orgFile = Dir(orgPath & "*.*")
Dim i As Integer
i = 2
'将文件名写入工作表
Do While Len(orgFile) > 0
ws.Range("C" & i).Value = orgFile
i = i + 1
orgFile = Dir
Loop
'复制所有文件到新文件夹
Dim sourceFile As String
Dim destFile As String
For i = 2 To ws.Range("C" & Rows.Count).End(xlUp).Row
sourceFile = orgPath & ws.Range("C" & i).Value
destFile = newPath & ws.Range("H" & i).Value
FileCopy sourceFile, destFile
Next i
'重命名新文件夹中的文件
For i = 2 To ws.Range("C" & Rows.Count).End(xlUp).Row
orgFile = newPath & ws.Range("C" & i).Value
newFile = newPath & ws.Range("H" & i).Value
Name orgFile As newFile
Next i
End Sub
写一个EXCEL宏,查找工作表中sheet名字叫中兴通讯成品运输提货单(空运)的sheet,复制并放到新的工作表文件里的第一个sheet,并将新工作表所有sheet的公式内容转换成非公式,新的工作表文件格式用 中兴通讯成品运输提货单(空运)- 做前缀,提取新工作簿B3单元格里的内容作为后缀,前缀+后缀重命名工作表,并将新的工作表文件放到C:\Users\DELL\Desktop\ZTE TRUCK\中兴通讯成品运输提货单
以下是对应的 EXCEL VBA 宏代码:
```
Sub CopySheetAndConvertFormulas()
Dim ws As Worksheet, newWb As Workbook
Dim suffix As String, newFileName As String
' 获取当前工作表中名为 "中兴通讯成品运输提货单(空运)" 的工作表
On Error Resume Next
Set ws = Worksheets("中兴通讯成品运输提货单(空运)")
If ws Is Nothing Then
MsgBox "未找到名为 '中兴通讯成品运输提货单(空运)' 的工作表。"
Exit Sub
End If
' 复制工作表到新的工作簿
Set newWb = Workbooks.Add
ws.Copy Before:=newWb.Worksheets(1)
' 将新工作表的所有公式转换为非公式
For Each ws In newWb.Worksheets
ws.Cells.Copy
ws.Cells.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Next
' 获取后缀和新文件名
suffix = newWb.Worksheets(1).Range("B3").Value
If newWb.Worksheets(1).Range("B3").MergeCells Then
suffix = newWb.Worksheets(1).Range("B3").MergeArea.Value
End If
newFileName = "中兴通讯成品运输提货单-" & suffix & ".xlsx"
' 保存新的工作簿并重命名工作表
newWb.SaveAs "C:\Users\DELL\Desktop\ZTE TRUCK\中兴通讯成品运输提货单\" & newFileName
newWb.Worksheets(1).Name = suffix
' 关闭新的工作簿
newWb.Close SaveChanges:=False
MsgBox "已完成操作。"
End Sub
```
请按照以下步骤操作:
1. 打开需要操作的 EXCEL 文件,按下 `Alt + F11` 进入 VBA 编辑器;
2. 在 VBA 编辑器中,选择 `插入` - `模块`,将上述代码复制粘贴进去;
3. 返回 EXCEL 文件,按下 `Alt + F8` 打开宏窗口,选择刚刚创建的宏,点击 `运行` 按钮即可。
在运行宏程序之前,请确保当前 EXCEL 文件中含有名为 "中兴通讯成品运输提货单(空运)" 的工作表,并且 B3 单元格中包含了新工作表的后缀信息。此外,如果 B3 单元格是合并单元格,也需要将代码中相关部分修改为之前提供的代码。
在保存新的工作簿时,需要将文件保存到 `C:\Users\DELL\Desktop\ZTE TRUCK\中兴通讯成品运输提货单` 目录下,并使用 `中兴通讯成品运输提货单-` 作为文件名前缀。
希望这个宏程序能够帮到你,如有任何问题,请随时联系我。
阅读全文