复制文本并将其设为大写

时间:2014-01-15 00:26:22

标签: excel excel-vba uppercase vba

我正在尝试创建一个宏,用户将在特定单元格中输入其首字母,宏将复制首字母并将其粘贴到另一个选项卡上的列表中。我很难搞清楚如何将其转换为大写任何帮助,我非常感谢下面是我的代码。提前谢谢!

    'By Initials
    Worksheets("New PN").Activate
        Range("B10").Copy
        Sheets("PN_List").Select
        Range("F1").End(xlDown).Offset(1, 0).Select
        Selection.PasteSpecial xlPasteValues
        Selection.HorizontalAlignment = xlCenter

        With Selection.Font
    .Name = "Calibri"
    .Size = 11

End With

3 个答案:

答案 0 :(得分:1)

  • 右键单击工作表标签 PN New
  • 查看代码
  • 复制并粘贴以下代码

然后,此代码将自动添加来自B10B12的任何新值(以第二个单元格为例),以便代码可以在需要的范围内运行)进入工作表* PN_List *

列F中的第一个空白单元格
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng1 As Range
Dim rng2 As Range
Dim rng3 As Range
Dim lngCnt As Long

Set rng1 = Intersect(Range("B10,B12"), Target)
If rng1 Is Nothing Then Exit Sub
Set rng3 = Sheets("PN_List").Columns("F:F").Find("*", Sheets("PN_List").[f1], xlValues, , xlPrevious, xlByRows)
If rng3 Is Nothing Then Set rng3 = Sheets("PN_List").[f1]
For Each rng2 In rng1
rng3.Offset(lngCnt + 1, 0) = UCase$(rng2)
lngCnt = lngCnt + 1
Next rng2
End Sub

答案 1 :(得分:0)

使用Ucase这样的功能:

Dim initial as String

initial = Ucase(Range("B10").Value)
Range("F1").End(xlDown).Offset(1, 0).Value = initial

希望这有帮助。

答案 2 :(得分:0)

使用UCASE功能。这对我有用

   ActiveCell = UCase(ActiveCell)