|
自己写了一段代码,在原来的工作薄了可以使用,但是我想把它做成一个通用的程序在其它工作薄里也可以用,就建立了个人宏工作薄,直接把代码考进去, 但是运行后总是各种报错,搞不懂了,请各位大佬帮忙看看吧!代买如下:
Application.ScreenUpdating = False
Dim endrow, i, j
Sheet2.Range("a:z").ClearContents
endrow = Sheet1.Range("A:A").Find("*", , xlValues, , , xlPrevious).Row
Sheet1.Range("A4:A" & endrow).Copy
Sheet2.Range("A1").PasteSpecial xlPasteValues
Application.CutCopyMode = False
For i = 4 To endrow - 3
'For j = 7 To 15
If Sheet1.Cells(i, 7) <> "" Then Sheet2.Cells(i - 3, 3) = "名称1"
If Sheet1.Cells(i, 7) = "" And Sheet1.Cells(i, 8) <> "" Then Sheet2.Cells(i - 3, 4) = "名称1"
If Sheet1.Cells(i, 9) <> "" Then Sheet2.Cells(i - 3, 5) = "名称2"
If Sheet1.Cells(i, 9) = "" And Sheet1.Cells(i, 10) <> "" Then Sheet2.Cells(i - 3, 6) = "名称2"
If Sheet1.Cells(i, 11) <> "" Then Sheet2.Cells(i - 3, 7) = "名称3"
If Sheet1.Cells(i, 12) <> "" Then Sheet2.Cells(i - 3, 8) = "名称4"
If Sheet1.Cells(i, 12) = "" And Sheet1.Cells(i, 13) <> "" Then Sheet2.Cells(i - 3, 9) = "名称4"
If Sheet1.Cells(i, 12) = "" And Sheet1.Cells(i, 13) = "" And Sheet1.Cells(i, 14) <> "" Then Sheet2.Cells(i - 3, 10) = "名称4"
If Sheet1.Cells(i, 15) <> "" Then Sheet2.Cells(i - 3, 11) = "名称5"
If Sheet1.Cells(i, 18) <> "" Then Sheet2.Cells(i - 3, 12) = "名称6"
If Sheet1.Cells(i, 19) <> "" Then Sheet2.Cells(i - 3, 13) = "名称7"
Next i
'合并单元格内容到一个单元格
Dim c%, str1$, str2$, str3$, str4$
For i = 1 To endrow - 3
For c = 3 To 13
If Sheet2.Cells(i, c) <> "" Then
str1 = Sheet2.Cells(i, c)
str2 = str2 & "、" & str1
End If
Next c
Sheet2.Cells(i, 2) = Mid(str2, 2) & "称"
str2 = ""
If Sheet2.Cells(i, 2) = "称" Then Sheet2.Cells(i, 2) = "XX称"
Next i
Sheet2.Range("B:B").Columns.AutoFit
Application.ScreenUpdating = True
|
|