Excel VBA代码将所有单元格大写

nzrxty8p  于 2023-01-21  发布在  其他
关注(0)|答案(5)|浏览(122)

目标:
目标是从下图中获得结果

问题:
目前的情况如下
我应该如何做,以获得的结果,在目标中使用VBA代码。

mec1mxoz

mec1mxoz1#

试试这个代码

Sub sample()
 Range("B4:E7") = [index(upper(B4:E7),)]
End Sub

qhhrdooz

qhhrdooz2#

Dim rng As Range
Dim cell As Range

Set rng = Range("C4:F7")

For Each cell In rng
    cell.Value = UCase(cell)
Next cell
dpiehjr4

dpiehjr43#

前面的答案要求你包含一个范围,如果你是在讨论所有的单元格,这个方法也有效。

sub EverythingToUpperCase()
   For Each Cell in ActiveSheet.UsedRange.Cells
        Cell.Value = UCase(Cell.value)
   Next
End Sub
rks48beu

rks48beu4#

我见过的最短版本:
“带目标”(在底部以结束)

Target = UCase(Target)    'Ucase  or  Lcase

    'Target = StrConv(Target, vbProperCase)    '<< PROPER

还有...... 1号班轮?:

Selection.Value = UCase(Selection.Value)  'YES  <<  1 LINER UCASE  (tested, worked),  add a range
dgsult0t

dgsult0t5#

我知道这是一个老线索,但正在寻找的东西,将大写只有我选择的单元格(水平,垂直,选定的单元格与差距,或任何组合)。最后做了一些对我有效的东西,我把丝带和拖动选择单元格,点击宏按钮得到所有上限!(如果需要整个工作表的上限,有更好的方法,如UsedRange,但只为一个特定的小选定范围,这工作得很好).对于原始的例子,我会拖动选择B4:E7,然后单击功能区宏按钮“All_Caps”和工作表的其余部分将保持不变.

Sub All_Caps()
 
Dim rng As Range

Dim cell As Range

Dim addr As String
    
addr = Selection.Address

Set rng = Range(addr)
    
For Each cell In rng

  cell.Value = UCase(cell)

Next cell

End Sub

相关问题