• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Convert VBA to VB.net?

Nơi trao đổi về các vấn đề trong lập trình Windows Forms, Console dùng cú pháp ngôn ngữ Visual Basic .NET và C#

Moderators: tungblt, vuathongtin

magicdl96
Posts: 5
Joined: Wed 08/01/2020 9:44 am

Convert VBA to VB.net?

Postby magicdl96 » Mon 10/02/2020 3:14 pm

Chào anh/chị trong caulacbovb ạ,

Em thường viết VBA trong excel nhưng em đang muốn tìm hiểu về VB.net. Em có đoạn code VBA muốn chuyển sang VB.net nhưng em không biết chuyển như thế nào?. Anh/chị giúp em với ạ. Em cảm ơn.

  1. Sub ext_Click()
  2. Dim sh As Worksheet, i As Long, dic As Object, a As Long, kq(1 To 1000, 1 To 9), b As Long, lr As Long, arr, dk As String
  3.      Set dic = CreateObject("scripting.dictionary")
  4.      For Each sh In ThisWorkbook.Worksheets
  5.          If InStr(1, sh.Name, "ITEM LIST") Then
  6.             arr = sh.Range("B7:J26").Value
  7.             For i = 1 To UBound(arr)
  8.                 If arr(i, 1) <> Empty Then
  9.                    dk = UCase(arr(i, 1)) & "#" & UCase(arr(i, 6)) & "#" & UCase(arr(i, 3)) & "#" & UCase(arr(i, 2))
  10.                    If Not dic.exists(dk) Then
  11.                       a = a + 1
  12.                       dic.Add dk, a
  13.                       kq(a, 1) = arr(i, 1)
  14.                       kq(a, 6) = arr(i, 6)
  15.                       kq(a, 3) = arr(i, 3)
  16.                       kq(a, 2) = arr(i, 2)
  17.                    End If
  18.                       b = dic.Item(dk)
  19.                       kq(b, 5) = kq(b, 5) + arr(i, 5)
  20.                 End If
  21.           Next i
  22.        End If
  23.    Next
  24.    With Sheets("SM - PARTS")
  25.         lr = .Range("B" & Rows.Count).End(xlUp).Row
  26.         If lr > 22 Then .Range("B3:I" & lr).ClearContents
  27.         If a Then .Range("B3:I3").Resize(a).Value = kq
  28.    End With
  29. End Sub



User avatar
thuanfun
Thành viên tích cực
Thành viên tích cực
Posts: 144
Joined: Thu 06/11/2008 7:46 pm
Been thanked: 10 times

Re: Convert VBA to VB.net?

Postby thuanfun » Thu 19/03/2020 11:22 pm

Bạn tham khảo:

  1. Sub ext_Click()
  2.         Dim sh As Worksheet, i As Long, a As Long, kq(999, 9) As Object, b As Long, lr As Long, arr As Object, dk As String
  3.         Dim dic As New Dictionary(Of String, String)
  4.         For Each sh In Me.Application.ThisWorkbook.Worksheets
  5.             If sh.Name.Contains("ITEM LIST") Then
  6.                 arr = sh.Range("B7:J26").Value
  7.                 For i = 0 To UBound(arr)
  8.                     If (arr(i, 0) IsNot Nothing) AndAlso (Not IsDBNull(arr(i, 0))) Then
  9.                         dk = UCase(arr(i, 0)) & "#" & UCase(arr(i, 5)) & "#" & UCase(arr(i, 2)) & "#" & UCase(arr(i, 1))
  10.                         If Not dic.ContainsKey(dk) Then
  11.                             a = a + 1
  12.                             dic.Add(dk, a)
  13.                             kq(a, 0) = arr(i, 0)
  14.                             kq(a, 5) = arr(i, 5)
  15.                             kq(a, 2) = arr(i, 2)
  16.                             kq(a, 1) = arr(i, 1)
  17.                         End If
  18.                         b = dic.Item(dk)
  19.                         kq(b, 4) = kq(b, 4) + arr(i, 4)
  20.                     End If
  21.                 Next i
  22.             End If
  23.         Next
  24.         With TryCast(Me.Application.ThisWorkbook.Worksheets("SM - PARTS"), Worksheet)
  25.             lr = .Range("B" & .UsedRange.Rows.Count).End(Excel.XlDirection.xlUp).Row
  26.             If lr > 22 Then .Range("B3:I" & lr).ClearContents()
  27.             If a Then .Range("B3:I3").Resize(a).Value = kq
  28.         End With
  29.     End Sub
  30.  
Nhận code VB.NET theo yêu cầu


Return to “Visual Basic .NET và C# (VB.NET & C#)”

Who is online

Users browsing this forum: No registered users and 31 guests