我有一個代碼成功查找外部文件,並將包含該特定條件的行復制/粘貼到當前工作簿中。例如,我在名爲Active master project file的外部工作簿中搜索Singapore
,並將包含Singapore
的所有行復制到當前打開的工作簿。運行代碼時刪除工作表中的邊框線
發生的一個問題是,當我運行相同的代碼兩次時,工作表的最後一行將存在邊框線。例如,當我運行代碼,它將複製粘貼包含Singapore
到調用當前工作表中的信息「即將到來的新項目」:
然而,當我再次運行該代碼,它會創建一個邊界線每一列上下面諸如圖像所示:
而且,我有對於現在的代碼是:
Sub UpdateNewUpcomingProj()
Dim wb1 As Workbook, wb2 As Workbook
Dim ws1 As Worksheet, ws2 As Worksheet
Dim copyFrom As Range
Dim lRow As Long '<~~ Not Integer. Might give you error in higher versions of excel
Dim strSearch As String
Set wb1 = Application.Workbooks.Open("U:\Active Master Project.xlsm")
Set ws1 = wb1.Worksheets("New Upcoming Projects")
strSearch = "Singapore"
With ws1
'~~> Remove any filters
.AutoFilterMode = False
'~~> I am assuming that the names are in Col A
'~~> if not then change A below to whatever column letter
lRow = .Range("A" & .Rows.Count).End(xlUp).Row
With .Range("A1:A" & lRow)
.AutoFilter Field:=1, Criteria1:="=*" & strSearch & "*"
Set copyFrom = .Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow
End With
.AutoFilterMode = False
End With
'~~> Destination File
Set wb2 = ThisWorkbook
Set ws2 = wb2.Worksheets("New Upcoming Projects")
With ws2
If Application.WorksheetFunction.CountA(.Cells) <> 0 Then
lRow = .Cells.Find(What:="*", _
After:=.Range("A1"), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Row
Else
lRow = 2
End If
copyFrom.Copy .Rows(lRow)
.Rows.RemoveDuplicates Array(2), xlNo
End With
End Sub
是否有任何改進或附加代碼,我必須添加以使邊界線消失?
你還沒有試過你的代碼,所以不知道*爲什麼*你得到了一個邊框。但是,您是否能夠在複製範圍後刪除邊框?請參閱:http://stackoverflow.com/questions/6974965/how-to-remove-borders-from-cells-in-a-range-in-excel-using-vb-net - 伊恩 – EyePeaSea
我可以刪除邊框,但用戶會發現每次他或她運行代碼時都必須始終刪除邊界,這很麻煩。這就是爲什麼我想知道是否有任何方法可以刪除邊框,以防止在代碼播放時定期刪除邊框@EyePeaSea – nabilah
刪除邊框的最後一行代碼,'Cells.Borders.LineStyle = xlNone' – Davesexcel