【发布时间】:2011-11-30 17:23:59
【问题描述】:
我完全没有使用 excel vba 编程的经验,除了我编写了一个函数来为几周前在我们的生产线上扫描的条码添加数据戳记,主要是通过反复试验。
无论如何,我现在需要帮助的是库存即将到来,我们拥有的每件商品都有条形码,通常会被扫描到记事本中,然后手动拉入 Excel 并使用“文本到列”。我找到了 excel 拆分功能,希望得到一些帮助,让它与我扫描的条形码一起使用。
数据采用以下格式:11111*A153333*11/30/11 加上回车符,其中 * 是分隔符。我发现的所有示例似乎都没有任何作用。
例如,这是我在“”处拆分时发现的一个,但如果我将其更改为 *,则不会发生任何事情。
Sub splitText()
'splits Text active cell using * char as separator
Dim splitVals As Variant
Dim totalVals As Long
splitVals = Split(ActiveCell.Value, "*")
totalVals = UBound(splitVals)
Range(Cells(ActiveCell.Row, ActiveCell.Column + 1), Cells(ActiveCell.Row, ActiveCell.Column + 1 + totalVals)).Value = splitVals
End Sub
如果有帮助,这将应用于 Sheet1 代码部分。
真的不可能这么复杂吧?
编辑:尝试将 Vlookup 添加到 vba。
正如我在下面的 cmets 中所说,我现在正在努力将 vlookup 集成到其中,但它只是返回 N/A。
这是我根据下面的链接写的子
Public Sub vlook(ByRef codeCell As Range)
Dim result As String
Dim source As Worksheet
Dim destination As Worksheet
Set destination = ActiveWorkbook.Sheets("Inventory")
Set source = ActiveWorkbook.Sheets("Descriptions")
result = [Vlookup(destination!(codeCell.Row, D), source!A2:B1397, 2, FALSE)]
End Sub
我试图在工作表中的 For 循环更改后立即调用它,并且刚刚创建了另一个 for 循环,这/应该是嵌套的 for 循环吗?
【问题讨论】:
-
我刚刚针对您指定的测试字符串运行了您的代码,它运行良好 - 用拆分值填充了接下来的三个单元格。
-
你把代码放在哪里了?也许这是我的问题?我将代码放入 sheet1 代码中。当我打开它(Alt+F11)时,我只是将那个小 Sub 粘贴在那里,当我用我的条形码扫描仪扫描时,它除了换行到下一行之外什么都不做。
-
您需要运行代码(例如,作为宏),或者根据逻辑创建某种工作表函数。
-
好吧,所以离开 phoog 的评论,我将 sub 更改为 Private Sub Worksheet_Change(ByVal Target as Range) 这不起作用,但如果我选择 Worksheet_SelectionChange() 它在我选择列时起作用.什么鬼。