我已经开始了一份新的工作,我的老板想让我把他们的报告从Sharepoint下载到Excel (以.iqy格式),并在某些领域表现得一塌糊涂。
主要问题是,几列是数字分数、个人姓名、日期等,而少数列是3-7句的较长的文本输入(通常是指向符号)。由于某种原因,这些较长的文本单元格可以在单元格的开头有0到5行空白行,也可以在单元格结束时使用,这看起来非常混乱,而且对于使用Excel手动删除的团队成员来说非常耗时。
我找到了一个VBA脚本,它删除了这些单元格开头的所有行,但不知道如何将其应用于这些单元格末尾的空行.如果有人能帮忙的话,那将是非常感谢的!
正在工作的单元格的启动代码如下:
Sub RemoveFirstLine(ByRef Target As Range)
Dim xCell As Range
For Each xCell In Target.Cells
xCell.Value = Right(xCell.Value, Len(xCell.Value) - InStr(1, xCell.Value, vbLf))
Next
End Sub
Sub StartRemove()
Dim xRng As Range
On Error Resume Next
Set xRng = Application.InputBox("Please select range:", "Excel 10 Tutorial", Selection.Address, , , , , 8)
If xRng Is Nothing Then Exit Sub
On Error Resume Next
RemoveFirstLine xRng
End Sub
任何帮助都将是非常感谢的,我只是-因此,与这些东西和谷歌是完全空白的问题上,与所有的重点是删除空白行,而不是空白行在他们!
发布于 2022-06-01 12:10:07
这将去掉所有前导和尾随的vbLf
字符。
Sub RemoveLineFeeds(ByRef Target As Range)
Dim xCell As Range
Dim i As Long
Dim Txt As String
For Each xCell In Target.Cells
If Not IsNumeric(xCell.Value2) And Not IsEmpty(xCell) Then
Txt = xCell.Value2
i = 1
Do While Mid$(Txt, i, 1) = vbLf
i = i + 1
Loop
If i > 1 Then
Txt = Mid$(Txt, i)
End If
i = Len(Txt)
Do While Mid$(Txt, i, 1) = vbLf
i = i - 1
Loop
If i < Len(Txt) Then
Txt = Left$(Txt, i)
End If
xCell.Value2 = Txt
End If
Next
End Sub
https://stackoverflow.com/questions/72461356
复制相似问题