首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >删除种姓(空白)行线

删除种姓(空白)行线
EN

Stack Overflow用户
提问于 2022-06-01 11:48:17
回答 1查看 32关注 0票数 -1

我已经开始了一份新的工作,我的老板想让我把他们的报告从Sharepoint下载到Excel (以.iqy格式),并在某些领域表现得一塌糊涂。

主要问题是,几列是数字分数、个人姓名、日期等,而少数列是3-7句的较长的文本输入(通常是指向符号)。由于某种原因,这些较长的文本单元格可以在单元格的开头有0到5行空白行,也可以在单元格结束时使用,这看起来非常混乱,而且对于使用Excel手动删除的团队成员来说非常耗时。

我找到了一个VBA脚本,它删除了这些单元格开头的所有行,但不知道如何将其应用于这些单元格末尾的空行.如果有人能帮忙的话,那将是非常感谢的!

正在工作的单元格的启动代码如下:

代码语言:javascript
运行
复制
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
代码语言:javascript
运行
复制
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

任何帮助都将是非常感谢的,我只是-因此,与这些东西和谷歌是完全空白的问题上,与所有的重点是删除空白行,而不是空白行在他们!

EN

回答 1

Stack Overflow用户

发布于 2022-06-01 12:10:07

这将去掉所有前导和尾随的vbLf字符。

代码语言:javascript
运行
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72461356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档