左功能丢失格式vba代码

时间:2017-10-06 16:43:35

标签: vba excel-vba excel

我正在尝试将数据拆分为多个工作表,但是当我运行我的代码时,它似乎已经丢失了它的格式。该列表包含我基于拆分的产品的父代码。

产品代码为0000-00-00格式,父代码为前4位数字0000,即0008-99-99为产品代码,0008为父代码。

所以在我的结果页面中,我得到的8结果不是0008,这就是我无法获得任何产品细节的原因。我试图使用左功能,它仍然给我8例如0008。我需要Sheets(n).Range("A1") = ws3.Cells(i, 1).Text这行代码的帮助。当我运行我的代码时,没有错误只是没有填充结果。

Option Explicit
Sub monthly()


Dim y1 As Workbook
Dim ws1, ws2, ws3 As Worksheet
Dim LR1, LR2, LR3, last As Long
Dim o, r, p As Long


Set y1 = Workbooks("Monthly Template.xlsm")


Set ws2 = y1.Sheets("Products")
Set ws3 = y1.Sheets("List")



LR2 = ws3.Cells(Rows.Count, "A").End(xlUp).Row

ws3.Activate

With ws3
Range("A1:A32").Sort key1:=Range("A1"), Order1:=xlAscending
End With





LR1 = ws2.Cells(Rows.Count, "A").End(xlUp).Row



For o = 3 To LR1
ws2.Cells(o, 29).FormulaR1C1 = "=LEFT(RC[-21],4)"
Next o



Dim i As Long, j As Long, k As Long, l As Long, m As Long, n As String

With Sheets("List")
    j = .Cells(.Rows.Count, 1).End(xlUp).Row
End With

With Sheets("Products")
    l = .Cells(.Rows.Count, 1).End(xlUp).Row
End With

For i = 1 To j
    n = Sheets("List").Cells(i, 1).Text
    Sheets.Add(After:=Sheets(Sheets.Count)).Name = n
    Sheets(n).Range("A1") = ws3.Cells(i, 1).Text
    For k = 3 To l

         With Sheets(n)
           If Sheets(n).Cells(1, 1).Value = Sheets("Products").Cells(k, 29).Value Then

             m = .Cells(.Rows.Count, 1).End(xlUp).Row
            .Rows(m + 1).Value = Sheets("Products").Rows(k).Value
            End If

                    End With
                           Next k
Next i

End Sub

enter image description here

enter image description here

0 个答案:

没有答案