根据内容更改Excel单元格文本

时间:2018-07-30 07:18:40

标签: excel vba

我试图在excel中制作一个VBA,该VBA根据单元格中的文本更改单元格的内容。我要更改的所有单元格都包含“ <(空格)0.005”结构,但是该数字变化很大,设置所有不同的数字将花费很长时间。 我有一个较旧项目的基础,但是我似乎无法将其调整为所需的需求。

Sub FillEmptyBlankCellWithValue()
Dim cell As Range
Dim InputValue As String
On Error Resume Next
InputValue = InputBox("Enter value that will fill empty cells in selection", _
"Fill Empty Cells")
For Each cell In Selection
If IsEmpty(cell) Then
cell.Value = InputValue
End If
Next
End Sub

1 个答案:

答案 0 :(得分:1)

您在正确的轨道上。但是总的来说,我会避免使用Selection或其他任何Select操作,因为它们容易出现很多错误。

相反,我建议使用活动(检测到的动态)范围,或者让用户定义范围。例如。

Option Explicit
Private Sub fill_blanks

Dim ws as Worksheet: Set ws = Sheets("Sheet1") ' set yours
Dim firstcell as String, lastcell as String, fillvalue as String
Dim datarange as Range

firstcell  = InputBox("Enter the starting cell of your data range")
lastcell = InputBox("Enter the last cell of your data range")
fillvalue = InputBox("Enter the value to fill blank cells with")

Set datarange = ws.Range(Trim(firstcell) & ":" & Trim(lastcell))

Dim cell as Range
For each cell in datarange
   If IsEmpty(cell) Then
        cell = fillvalue
   End If
Next cell

End Sub
  

您还可以让他们在的预定义单元格内定义范围   工作表,或使用.End(xlUp)检测行的有效范围   和.End(xlToLeft)用于列。真的取决于你。.


注意:这会将结果作为单元格格式粘贴为String(或“文本”),还需要更改Range.Format属性。