Excel 用VBA生成一个范围
我是VBA新手(4个月),主要记录构建宏的操作 现在,我正在尝试构建一个简单的宏来选择列中的所有数据,并使其成为正确的大小写。 我怎样才能做到这一点,有人能给我指出一个我自己找不到的资源吗 这也是我的第一篇帖子!谢谢你抽出时间给任何看到这个的人 这是我的开始:Excel 用VBA生成一个范围,excel,vba,Excel,Vba,我是VBA新手(4个月),主要记录构建宏的操作 现在,我正在尝试构建一个简单的宏来选择列中的所有数据,并使其成为正确的大小写。 我怎样才能做到这一点,有人能给我指出一个我自己找不到的资源吗 这也是我的第一篇帖子!谢谢你抽出时间给任何看到这个的人 这是我的开始: Range("D3").Select Range(Selection, Selection.End(xlDown)).Select 我想我想使用应用程序.WorksheetFunction.property但我不知道
Range("D3").Select
Range(Selection, Selection.End(xlDown)).Select
我想我想使用
应用程序.WorksheetFunction.property
但我不知道如何使用请尝试这种方法。下一个代码处理列E:E中的值。您可以轻松地将其调整为另一列。无需选择任何内容。选择、激活只会消耗Excel资源,不会带来任何好处:
Sub UcaseRange()
Dim sh As Worksheet, rng As Range
Set sh = ActiveSheet
Set rng = sh.Range("E2:E" & sh.Range("E" & sh.rows.count).End(xlUp).row)
rng = Evaluate("INDEX(UPPER(" & rng.Address(0, 0) & "),)")
End Sub
下面是我的方法,调整列索引(rw.Row,1)以适合您的项目
Sub ConvertValuesInColumnOneToProperCase()
Dim wb As Workbook: Set wb = ThisWorkbook
Dim ws As Worksheet: Set ws = ActiveSheet
Dim rw As Range
For Each rw In ws.UsedRange.Rows
ws.Cells(rw.Row, 1) = StrConv(ws.Cells(rw.Row, 1), vbProperCase)
Next rw
End Sub
有关如何查找上次使用的单元格的信息,请参阅。您能给我指一个通用资源,说明使用什么而不是选择什么吗?正如我所说的,我的大多数宏都是从记录函数生成的,我不知道如何独立编写代码。@TastyPlacebo:我认为查看上面的代码应该是显而易见的。。。该范围是通过将“E2:E”字符串与最后一个行号串联而建立的。使用
sh.Range(“E”和sh.rows.count).End(xlUp).row
获得。现在更清楚了吗?对我来说没有什么是显而易见的,因为我对编写任何类型的代码都是全新的。这更清楚了,谢谢。我将您共享的代码更改为我需要的专栏,并将其从UPPER更改为Right,效果非常好,谢谢。