我有以下節點:如何將分隔字符串拆分爲特定的單個單元格?
預期輸出:
我現在的步驟獲得此是:由
劃界「/ 「
排序
有條件地設置格式的一些細胞。我試圖通過做A2 = A1並將字體顏色設置爲白色來使單元格變爲空白。但是這不起作用。
我怎樣才能做到這一點使用VBA?我被告知這可能需要VBA。 訣竅是每行只保留一個父節點。
我有以下節點:如何將分隔字符串拆分爲特定的單個單元格?
預期輸出:
我現在的步驟獲得此是:由
劃界「/ 「
排序
有條件地設置格式的一些細胞。我試圖通過做A2 = A1並將字體顏色設置爲白色來使單元格變爲空白。但是這不起作用。
我怎樣才能做到這一點使用VBA?我被告知這可能需要VBA。 訣竅是每行只保留一個父節點。
快速而骯髒,但它完成了工作。這將循環遍歷A-F行1-12列,併爲每個單元格選擇值,查找出現次數並刪除第二次出現而不是第一次。這應該做的伎倆。
Sub findItemInColumns()
With ThisWorkbook.Worksheets("Sheet1")
For r = 1 To 12
For c = 1 To 6
RemoveDups .Cells(r, c).Value
Next
Next
End With
End Sub
Sub RemoveDups(ByVal somevalueToFindAndRemove As String)
Dim FindString As String
Dim Rng As Range
listOfValues = Array(somevalueToFindAndRemove)
If Trim(somevalueToFindAndRemove) <> "" Then
With Sheets("Sheet1").Range("A:AK")
For i = LBound(listOfValues) To UBound(listOfValues)
Set Rng = .Find(What:=listOfValues(i), _
After:=.Cells(.Cells.Count), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not Rng Is Nothing Then
FirstAddress = Rng.Address
Do
Application.Goto Rng, True
If Rng.Address <> FirstAddress Then Rng.Value = ""
Set Rng = .FindNext(Rng)
Loop While Not Rng Is Nothing And Rng.Address <> FirstAddress
End If
Next i
End With
End If
End Sub
有沒有聽說過這種稱爲* indentation *的美妙事物?另外,這段代碼顯然需要一個從1到6的內部循環。像這樣的惰性代碼很容易出錯,正如上一次循環中的複製麪食錯誤(「完成工作」 - 您測試它?)所證明的那樣。而'Call'也完全是多餘的。 –
:-)謝謝馬特,我真的很喜歡你這樣的純粹主義者。正如我所說,這是快速和骯髒的,請閱讀上面的帖子。像你這樣真正的人,通過提供批評而不是價值使世界變得更美好。再次感謝您的精彩評論。 – Miguel
對於基督的緣故......在這裏,你有足夠的「價值」嗎? FWIW我在VBA標籤中貢獻了388個答案(還有另外175個答案在CR.SE上),我相信我提供的「價值」不僅僅是批評。如果你打算給「在這裏試試這個」代碼轉儲的答案,至少應該讓它們成爲工作代碼。 –
嘗試用公式(在新的工作表或列)像
X2 =IF(A2=A1,"",A2)
X3 =IF(A3=A2,"",A3)
X4 =IF(A4=A3,"",A4)
等。
對於A列
你能後的預期輸出應該是什麼樣的例子? – Miguel
@米格爾,嗨米格爾,預期的輸出是在第二張照片。新生病讓這個更清楚。 – Jonnyboi
好吧現在有道理,所以你只是想刪除DUPS?按列?或者你真的想讓字體變成白色,以致看不見? – Miguel