香飘飘奶茶广告语:精品:删除行、列、选定区域中的指定字符和字符串 - 『 VBA交流 』 - OFFICE精...

来源:百度文库 编辑:八卦区 时间:2020/02/20 23:40:00

精品:删除行、列、选定区域中的指定字符和字符串

工作无聊时编的玩具,在数据处理过程中用得着,对高手是多余的!也请大家多多指点!
1、删除活动单元格所在列的单元格中的空格
Sub DelSpaceOfColumn()
'-------------------------------------
''删除活动单元格所在列单元格中的空格
'-------------------------------------
Dim colNumber, rowNumber, rowCount, endRow, colCount, charCount, char, cellStr, cellStrLeng, newStr
'取得当前工作表中数据区的总行数
endRow = ActiveSheet.UsedRange.Rows.count 'Cells(1, 1).CurrentRegion.Rows.count
'取得活动单元格的列号和行号
colNumber = ActiveCell.Column
rowNumber = ActiveCell.Row
'循环处理每一个单元格
For rowCount = 1 To endRow
  newStr = ""
  '取单元格中的字符串
  cellStr = Cells(rowCount, colNumber)
  '取字符串的长度
  cellStrLeng = Len(cellStr)
  '对每个字符进行处理
  For charCount = 1 To cellStrLeng
    '从字符串中取一个字符
    char = Mid(cellStr, charCount, 1)
    '判断字符不是空格
    If char <> " " Then
      '连接每个不是空格的字符
      newStr = newStr & char
    End If
  Next
  '将重新连接成的字符串再赋给单元格
  Cells(rowCount, colNumber) = newStr
Next
MsgBox "恭喜您!完成了" & rowCount & "单元格的处理!"
End Sub

2、删除活动单元格所在行的单元格中的空格
Sub DelSpaceOfRow()
'-------------------------------------
''删除活动单元格所在行单元格中的空格
'-------------------------------------
'定义计数器变量
Dim colNumber, rowNumber, columnCount, endColumn, colCount, charCount
'定义字符变量
Dim char, cellStr, cellStrLeng, newStr
'取得当前工作表中数据区的总行数
endColumn = ActiveSheet.UsedRange.Columns.count 'Cells(1, 1).CurrentRegion.Rows.count
'取得活动单元格的列号和行号
colNumber = ActiveCell.Column
rowNumber = ActiveCell.Row
'循环处理每一个单元格
For columnCount = 1 To endColumn
  newStr = ""
  '取单元格中的字符串
  cellStr = Cells(rowNumber, columnCount)
  '取字符串的长度
  cellStrLeng = Len(cellStr)
  '对每个字符进行处理
  For charCount = 1 To cellStrLeng
    '从字符串中取一个字符
    char = Mid(cellStr, charCount, 1)
    '判断字符不是空格
    If char <> " " Then
      '连接每个不是空格的字符
      newStr = newStr & char
    End If
  Next
  '将重新连接成的字符串再赋给单元格
  Cells(rowNumber, columnCount) = newStr
Next
MsgBox "恭喜您!完成了" & columnCount & "单元格的处理!"
End Sub

3、删除选中区域单元格中的空格
Sub DelSpaceOfSelection()
'-------------------------------------
''删除选中区域单元格中的空格
'-------------------------------------
'定义计数器变量
Dim cellsObject, count
'定义字符变量
Dim char, cellStr, cellStrLeng, newStr
'取得活动单元格的列号和行号
count = 0
For Each cellsObject In Selection
  count = count + 1
  newStr = ""
  '取单元格中的字符串
  cellStr = cellsObject.Value
  '取字符串的长度
  cellStrLeng = Len(cellStr)
  '对每个字符进行处理
  For charCount = 1 To cellStrLeng
    '从字符串中取一个字符
    char = Mid(cellStr, charCount, 1)
    '判断字符不是空格
    If char <> " " Then
      '连接每个不是空格的字符
      newStr = newStr & char
    End If
  Next
  '将重新连接成的字符串再赋给单元格
  cellsObject.Value = newStr
Next
MsgBox "恭喜您!完成了" & count & "单元格的处理!"
End Sub

4、删除选中区域单元格中的ASCII字符
Sub DelAsciiOfSelection()
'-------------------------------------
''删除选中区域单元格中的ASCII字符
'-------------------------------------
'定义计数器变量
Dim cellsObject, count
'定义字符变量
Dim char, cellStr, cellStrLeng, newStr
'计数器初始化
count = 0
For Each cellsObject In Selection
  count = count + 1
  newStr = ""
  '取单元格中的字符串
  cellStr = cellsObject.Value
  '取字符串的长度
  cellStrLeng = Len(cellStr)
  '对每个字符进行处理
  For charCount = 1 To cellStrLeng
    '从字符串中取一个字符
    char = Mid(cellStr, charCount, 1)
    '判断字符不是ASCII字符,因为汉字的编码为负值
    If Asc(char) < 0 Then
      '连接每个不是空格的字符
      newStr = newStr & char
    End If
  Next
  '将重新连接成的字符串再赋给单元格
  cellsObject.Value = newStr
Next
MsgBox "恭喜您!完成了" & count & "单元格的处理!"
End Sub

5、删除选中区域单元格中的汉字字符
Sub DelChineseOfSelection()
'-------------------------------------
''删除选中区域单元格中的汉字字符
'-------------------------------------
'定义计数器变量
Dim cellsObject, count
'定义字符变量
Dim char, cellStr, cellStrLeng, newStr
'计数器初始化
count = 0
For Each cellsObject In Selection
  count = count + 1
  newStr = ""
  '取单元格中的字符串
  cellStr = cellsObject.Value
  '取字符串的长度
  cellStrLeng = Len(cellStr)
  '对每个字符进行处理
  For charCount = 1 To cellStrLeng
    '从字符串中取一个字符
    char = Mid(cellStr, charCount, 1)
    '判断字符不是汉字字符,因为汉字的编码为负值
    If Asc(char) > 0 Then
      '连接每个不是空格的字符
      newStr = newStr & char
    End If
  Next
  '将重新连接成的字符串再赋给单元格
  cellsObject.Value = newStr
Next
MsgBox "恭喜您!完成了" & count & "单元格的处理!"
End Sub

6、删除选中区域单元格中的指定字符
Sub DelAppointCharOfSelection()
'-------------------------------------
''删除选中区域单元格中的指定字符
'-------------------------------------
'定义单元格对象和计数器变量
Dim cellsObject, count
'定义字符变量
Dim char, cellStr, cellStrLeng, newStr, delChar
'计数器初始化
count = 0
'指定要删除的字符,可以是中文字符或英文字符
delChar = InputBox("请在下面的文本框中输入要删除的一个字符,可以是中文字符或英文字符![默认为空格]", "您要删除什么字符?", " ")
'对选中的每个单元格进行处理
For Each cellsObject In Selection
  count = count + 1
  newStr = ""
  '取单元格的值
  cellStr = cellsObject.Value
  '取字符串的长度
  cellStrLeng = Len(cellStr)
  '对每个字符进行处理
  For charCount = 1 To cellStrLeng
    '从字符串中取一个字符
    char = Mid(cellStr, charCount, 1)
    '判断字符不是汉字字符,因为汉字的编码为负值
    If char <> delChar Then
      '连接每个不是空格的字符
      newStr = newStr & char
    End If
  Next
  '将重新连接成的字符串再赋给单元格
  cellsObject.Value = newStr
Next
MsgBox "恭喜您!完成了" & count & "单元格的处理!"
End Sub

7、删除选中区域单元格中的指定字符串
Sub DelAppointSubStrOfSelection()
'-------------------------------------
''删除选中区域单元格中的指定字符串
'-------------------------------------
'定义单元格对象和计数器变量
Dim cellsObject, count, existFlag
'定义字符变量
Dim cellStr, cellStrLeng, subStrLeng, newStr, delChar
'计数器初始化
count = 0
'指定要删除的字符,可以是中文字符或英文字符
delChar = InputBox("请在下面的文本框中输入要删除的一个字符,可以是中文字符或英文字符![默认为空格]", "您要删除什么字符?", " ")
'取子串长度
subStrLeng = Len(delChar)
'对选中的每个单元格进行处理
For Each cellsObject In Selection
  count = count + 1
  newStr = ""
  '取单元格的值
  cellStr = cellsObject.Value
  '取字符串的长度
  cellStrLeng = Len(cellStr)
  '取子串在主串中的起始位子
  existFlag = InStr(cellStr, delChar)
  '判断子串不是空
  If delChar <> "" Then
  '循环处理一个串中存在的子串
    Do While existFlag <> 0
       newStr = Left(cellStr, existFlag - 1)
       newStr = newStr & Right(cellStr, cellStrLeng - existFlag - subStrLeng + 1)
       existFlag = InStr(newStr, delChar)
       cellStr = newStr
       cellStrLeng = Len(cellStr)
    Loop
   End If
  cellsObject.Value = newStr
Next
MsgBox "恭喜您!完成了" & count & "单元格的处理!"
End Sub