将<p>和</p>标记附加到vba中列中所有单元格中的文本。列中的单元格保持不变

时间:2014-09-09 12:08:11

标签: excel vba excel-vba

我是vba的新手。

我在每个单元格中都有一个文本。我需要将html段落(< p >< /p >)标记添加到每个单元格中。此coloumn中的行数会有所不同,因此我需要一个vba代码,可以将这些标记添加到所有单元格中,无论其中的文本或单元格数量如何。

我尝试uptil现在需要我记录一个宏,我手动将标签附加到每个单元格,然后运行此宏。

但是当coloumn中添加了更多行时,这没有用。 如果有解决方案,请告诉我。

我得到的代码:

Private Sub Test_parah_Click()

Windows("rawdata_test.xlsm").Activate
Range("H2").Select
ActiveCell.FormulaR1C1 = _
    "<p>Retail prices.</p>"
Range("H3").Select
ActiveCell.FormulaR1C1 = _
    "<p>Data base platform.</p>"
Range("H4").Select
ActiveCell.FormulaR1C1 = _
    "<p>Lisence permits.</p>"
Range("H5").Select
ActiveCell.FormulaR1C1 = _
    "<p>Greenberg assessment.</p>"
   End Sub

3 个答案:

答案 0 :(得分:3)

为什么不用公式?

="<p>"&A1&"</p>"

或者如果您坚持在VBA中执行此操作,您可以执行以下操作(跳过空白单元格并使用rows.count使其适用于各种版本的Excel)

Sub AddParagraphMarkers()

Dim cell As Range

For Each cell In Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row)
    If Len(cell) <> 0 Then
        cell.Value = "<p>" & (cell.Value & "</p>")
    End If
Next

End Sub

希望能给你一个起点!

答案 1 :(得分:2)

只需选择您的范围并运行此代码:)

Sub Sample()
    Dim aCell As Range

    '~~> Check if what the user selected is a valid range
    If TypeName(Selection) <> "Range" Then
        MsgBox "Select a range first."
        Exit Sub
    End If

    For Each aCell In Selection
        If Len(Trim(aCell.Value)) <> 0 Then aCell.Value = "<p>" & aCell.Value & "</p>"
    Next
End Sub

答案 2 :(得分:0)

这将检查工作表中最后一个填充的行并循环显示它们, 将<p></p>添加到“ H ”列中的所有单元格。

Sub Test_parah_Click()
    finalRow = ActiveSheet.UsedRange.Rows.Count

    For i = 1 To finalRow
        Cells(i, 8) = "<p>" & Cells(i, 8).Value & "</p>"
    Next i
End Sub