【问题标题】:Excel macro to reference cell textExcel 宏以引用单元格文本
【发布时间】:2016-10-21 22:28:15
【问题描述】:

我正在组合一个基本宏来格式化列以包含参考字母。例如,一列有1,2,3,并且有一个单元格,用户可以在其中输入一些字母并单击按钮。 ABC 例如。这在工作时应将1,2,3 格式化为现在ABC1ABC2ABC3 等。

我在某种程度上实现了这一点,但它只适用于字母 A。见下文:

Sub Macro4()

    Range("A3:A60").Select

    Selection.NumberFormat = Range("k11").Text & "0" & "0" & "0"

End Sub

【问题讨论】:

  • 该单元格包含1, 2, 3 还是每一行都有不同的数字?
  • 如果@tjb1 问题的答案是每一行都有不同的数字,那么只需使用=$K$11&A3 之类的公式。否则,请使用 VBA。
  • 是的,抱歉,列中的每个单元格都是递增的数字 1、2、3、4、5 等。通过单击按钮,它会将引用添加到前面。
  • @85l00k85 宏可以做到这一点,但您想要更改引用的能力吗?比如说,从ABCDEF
  • 感谢您的回复。是的,使用上面的代码,我已经让它工作了。然而,它只适用于字母 A 或多个 A、A、AA 等的组合。所以这个想法是,无论用户插入所选单元格 K11 的任何引用,这都将放置在列编号系统的前面,超过可能会保持 1,2,3,4,5,6,7...等。

标签: excel vba


【解决方案1】:

这是我的尝试。我很确定有更好的方法:

Option Explicit

Sub TestMacro()

Dim MyRange As Range
Dim MyReference As Range
Dim MyArray() As Variant
Dim Counter As Long
Dim wf As WorksheetFunction
Dim Cell As Range
Dim val As Integer

Application.ScreenUpdating = False
Set wf = Application.WorksheetFunction
Set MyRange = Range("A3:A60")
For Each Cell In MyRange
    val = Application.Evaluate("=MIN(SEARCH({0,1,2,3,4,5,6,7,8,9}," & Cell.Address & "&" & """0,1,2,3,4,5,6,7,8,9""" & "))")
    Cell = CInt(Mid(Cell, val, Len(Cell) - val + 1))
Next Cell

Set MyReference = Range("B3")
MyArray = Application.Transpose(MyRange)
For Counter = LBound(MyArray) To UBound(MyArray)
    MyArray(Counter) = MyReference & CStr(MyArray(Counter))
Next Counter

MyRange = Application.Transpose(MyArray)
Application.ScreenUpdating = True

End Sub

【讨论】:

  • 谢谢巴里我试试看!
猜你喜欢
  • 1970-01-01
  • 2017-04-14
  • 1970-01-01
  • 1970-01-01
  • 2013-05-11
  • 2018-01-11
  • 2017-06-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多