1.提取管线号

用autocad属性提取功能提取管线号块的属性。每一张PID图分开提取,这样就无需核对哪一条管线在哪一张图上。

2.添加图号

给每一张PID图的管线提取excel文件中,添加所在图图号。用简易方式表示图号,如101、102。

3.合并所用管线提取excel文件到一个excel文件中不同sheet中

参考文献:https://www.zhihu.com/question/20366713

1、新建一个工作薄,将其命名为你合并后的名字。 2、打开此工作薄。 3、在其下任一个工作表标签上点击右键,选择“查看代码”。 4、在打开的VBA编辑窗口中粘贴以下代码:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
Sub 工作薄间工作表合并()

Dim FileOpen
Dim X As Integer
Application.ScreenUpdating = False
FileOpen = Application.GetOpenFilename(FileFilter:="Microsoft Excel文件(*.xls),*.xls", MultiSelect:=True, Title:="合并工作薄")
X = 1
While X <= UBound(FileOpen)
Workbooks.Open Filename:=FileOpen(X)
Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
X = X + 1
Wend
ExitHandler:
Application.ScreenUpdating = True
Exit Sub


errhadler:
MsgBox Err.Description
End Sub

5、关闭VBA编辑窗口。 6、在excel中,工具—宏—宏,选“工作薄间工作表合并”,然后“执行”。 7、在打开的对话窗口中,选择你要合并的300个工作薄。 8、完成

4.将上一步合并成的excel文件中多个sheet合并为一个

参考文献:https://www.zhihu.com/question/20366713

1、在包含多个sheet的工作簿中(如多个工作簿合并后含n个sheet的工作簿),新建一个sheet 2、在新建的sheet标签上点击右键,选择“查看代码” 3、在打开的VBA编辑窗口中粘贴以下代码:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub 合并当前工作簿下的所有工作表()

Application.ScreenUpdating = False

For j = 1 To Sheets.Count

If Sheets(j).Name <> ActiveSheet.Name Then

X = Range("A65536").End(xlUp).Row + 1

Sheets(j).UsedRange.Copy Cells(X, 1)

End If

Next

Range("B1").Select

Application.ScreenUpdating = True

MsgBox "当前工作簿下的全部工作表已经合并完毕!", vbInformation, "提示"

End Sub

4、运行即可。

5.将上一步得到的excel文件内容分列

用excel数据-〉分列功能,以短横线「-」作为分隔符,将提取出的管线号分为管径、介质、等级、序号、保温无列。

6.排序

用excel数据-〉排序功能,以图号、介质、序号的顺序,进行升序排列。

7.提取保温保冷方式和厚度

提取出的保温保冷为C50或H40等形式。 同一行另启一列,空白格中用以下函数提取保温方式如C或H:

1
=LEFT(A2,1)

A2为目标单元格。拖动单元格获取其他行保温方式。

同一行另启一列,空白格中用以下函数提取保温厚度如50和40:

1
=MID(A2,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A2&"0123456789")),2*LEN(A2)-LENB(A2))

8.完整图号

标准图号的格式为21000-602-B-101,刚才只在每张PID图的管线提取excel中用101等做了简单标记,现在通过以下函数统一添加前缀“21000-602-B-”:

1
=“21000-602-B-”&A1

9.将提取的属性复制进标准格式「管道命名表」中

现在就可以直接复制-粘贴各列的数据了。之后再填写其他需要的数据。