我有一个电子表格,第1行有各种标题名称。第36列(列“$AJ$1”),标题名称为“Product Quantity”。我试图在该列之后插入一个标题为“Total Quantity”的列。我的代码计算出列号(36),将其传递给一个函数,该函数应该返回列的字母数字(“AJ”)指定。在函数调用中,该函数计算出它应该是“AJ”,但当它被传递回调用例程时,字母数字指定是空白的。我应该提到,该函数和传递回调用程序适用于所有其他列引用,它只是不适用于第36列(“AJ”)。
怎么回事?这是我的密码。
数据表片段:
| AJ列|AK列|
| --|--|
| 产品数量|产品价格|
我想要的:
| AJ列|AK列|AL列|
| --|--|--|
| 产品数量|总量|产品价格|
下面是调用代码:
Dim rng1 As Excel.Range
Dim QuantityCol As String
Dim TotalQuantityCol As String
Dim strSearch As String
Set rng1 = Nothing
strSearch = "Product Quantity"
Set rng1 = xlApp_p.ActiveSheet.UsedRange.Find(strSearch, , xlValues, xlWhole)
If Not rng1 Is Nothing Then
QuantityCol = ColumnNumberToColumnString(rng1.Column)
' QuantityCol = Columns(36).Address (My attempt to hardcode which did not work)
xlApp_p.ActiveSheet.Range(QuantityCol & ":" & QuantityCol).EntireColumn.Insert Shift:=xlToRight
'Label the now blank column (where the column after Product Quantity was) with "Total Quantity"
xlApp_p.ActiveSheet.Range(QuantityCol & "1").Offset(0, 1).Value = "Total Quantity"
End If
Set rng1 = Nothing
Function ColumnNumberToColumnString(col As Long) As String
If col > MAX_COL_NUMBER Or col < 1 Then
ColumnNumberToColumnString = "ERROR": Exit Function
Else
ColumnNumberToColumnString = Split(Columns(col).Address, "$")(2)
' ColumnNumberToColumnString = "AJ" (My attempt to hardcode which did not work)
End If
字符串
我不是新手,但我是新的提交问题stackoverflow.请帮助,如果你可以.非常感谢!
我尝试在函数内部和外部进行硬编码,但也不起作用。
我希望我的电子表格的第36列有一个列名称“AJ”。
1条答案
按热度按时间e0bqpujr1#
不需要将列号转换为文本。您可以使用列号,或者在这种情况下,当您搜索并返回对“Product Quantity”单元格的引用时,您可以从该单元格偏移。
字符串