首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建宏以将UPC E条形码转换为UPC A

创建宏以将UPC E条形码转换为UPC A
EN

Stack Overflow用户
提问于 2015-06-04 03:46:38
回答 1查看 560关注 0票数 0

我的问题是,在第一个循环oldupc仍然被引用到A1而不是off设置为A2之后,我创建了msgboxes来跟踪循环中的进度。我需要对每个单元格进行偏移吗?

子ConvertUPCE()

代码语言:javascript
复制
Dim OldUPC As String
Dim NewUPC As String
Dim K As Double, i As Double
Dim L As Integer

OldUPC = ActiveCell.Offset(0, -2).Value
NewUPC = ActiveCell.Offset(0, 1).Value
K = Cells(Rows.Count, "A").End(xlUp).Row
L = ActiveCell.Value
    MsgBox (K)
'MsgBox OldUPC
'MsgBox NewUPC
'MsgBox L

Range("c1").Select

 For i = 1 To 11

 If (L >= 0 And L <= 3) Then
      ActiveCell.Value2 = "'" & Mid(OldUPC, 1, 1) & Mid(OldUPC, 2, 2) & Mid(OldUPC, 7, 1) & "0000" & Mid(OldUPC, 4, 3)
      ActiveCell.Offset(1, 0).Select


       ElseIf (L = 4) Then
         ActiveCell.Value2 = "'" & Mid(OldUPC, 1, 1) & Mid(OldUPC, 2, 3) & "00000" & Mid(OldUPC, 5, 2)

       ElseIf (L = 5) Then
         ActiveCell.Value2 = "'" & Mid(OldUPC, 1, 1) & Mid(OldUPC, 2, 4) & "00000" & Mid(OldUPC, 6, 1)
         ActiveCell.Offset(1, 0).Select

       ElseIf (L >= 6 And L <= 9) Then
         ActiveCell.Value2 = "'" & Mid(OldUPC, 1, 1) & Mid(OldUPC, 2, 5) & "0000" & Mid(OldUPC, 7, 1)
         ActiveCell.Offset(1, 0).Select


         Else: ActiveCell.Value = "Not Vailid Check Digit"

      End If

      'MsgBox OldUPC
      MsgBox OldUPC

 Next i
EN

回答 1

Stack Overflow用户

发布于 2015-06-04 04:16:02

我建议不要使用ActiveCell,而是使用迭代整数作为单元格行。

如下所示:Cells(i, 3).value2 = ...,其中i是行号,3是列号(因为您在C列中)。

然后,您可以使用Cells(i,3).Offset(1,0).select进行偏移。

这也会使代码运行得更快,因为在操作数据之前不会选择每个单元格。

提示:如果您想迭代行和列,您可以执行以下操作,而不必担心选择了什么以及下一步是什么:

代码语言:javascript
复制
For RowNum = 1 to 11
    For ColNum = 1 to 11
        Cells(RowNum, ColNum).value = ""
    Next ColNum
Next RowNum

-So这将遍历11行中的每行11列!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30629287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档