我试图在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
答案 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
属性。 >