我有一个excel文件,每个月在不同的列中列出健身会员的姓名。我需要将其名称更改为适当的大小写。 使用:
[B:B] = [INDEX(PROPER(B:B),)]
更改B列中所有文本的大小写。
很遗憾,我的数据每月更改一次“会员名称”列。
我不知道如何在上面的代码中使用变量代替B:B。
一旦找到标题正确的“成员名称”列,便从该单元格地址中提取列字母。如何代替B:B输入它?
这是我尝试过的:
1)找到“会员名称”标题所在的单元格,然后选择该单元格:
Set MyMember = Cells.Find(What:="Member Name", LookIn:=xlFormulas, LookAt _
:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False)
Range(MyMember.Address).Select
2)读取所选单元格的列号,并使用函数将列号转换为列字母:
MyCol1 = ConvertToLetter(ActiveCell.Column)
将列号转换为列字母的功能
Function ConvertToLetter(iCol As Integer) As String
Dim iAlpha As Integer
Dim iRemainder As Integer
iAlpha = Int(iCol / 27)
iRemainder = iCol - (iAlpha * 26)
If iAlpha > 0 Then
ConvertToLetter = Chr(iAlpha + 64)
End If
If iRemainder > 0 Then
ConvertToLetter = ConvertToLetter & Chr(iRemainder + 64)
End If
End Function
所以,现在我在变量MyCol1中有列字母。我想用MyCol1中的值将B:B替换为以下代码:
[B:B] = [INDEX(PROPER(B:B),)]
输入变量MyCol1不起作用:
[MyCol1:MyCol1] = [INDEX(PROPER(MyCol1:MyCol1),)]
我很困惑。我尝试将MyCol1转换为字符串和范围,但没有任何效果。
任何帮助将不胜感激。