Nhờ người giúp chuyển đổi code từ VBA Excel sang 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

Post Reply
dosown94
Posts: 3
Joined: Wed 26/08/2020 1:08 pm
Has thanked: 1 time

Nhờ người giúp chuyển đổi code từ VBA Excel sang VB.net

Post by dosown94 »

Em chào anh chị
Sau đây là đoạn code em viết ở Excel nhưng khi đưa sang VB.net thì 1 số lệnh chỉ ở vba excel mới chạy được còn VB net không hiểu. nên em cần trợ giúp. rất mong nhận được góp ý từ các anh chị ạ.
  1. Sub LocD()
  2. dd = ActiveSheet.Cells(3, 1).Value
  3. dc = ActiveSheet.Cells(5, 1).Value - 1
  4.     With Application
  5.         ActiveSheet.Shapes("txtbox").Select
  6.         On Error Resume Next
  7.         If Selection.Characters.Text = "Analyze-Hide" Then
  8.             Selection.Characters.Text = "Analyze-Show"
  9.             rc1 = ActiveSheet.Cells(dd - 2, 2).End(xlDown).Row
  10.             ActiveSheet.Range("B" & rc1 + 1 & "A" & dc).EntireRow.Hidden = True
  11.        Else
  12.             Selection.Characters.Text = "Analyze-Hide"
  13.             ActiveSheet.Range("B" & dd & "B" & dc).EntireRow.Hidden = False
  14.         End If
  15.         rc2 = .Cells(dd - 3, 2).End(xlDown).Row
  16.  rc = Application.Max(rc2, dd)
  17.     ActiveSheet.Range("I" & dd & "I" & rc).FormulaR1C1 = _
  18.         "=tinhlaiMomen(RC[-5],RC[-2],3)*RC[-2]/ABS(RC[-2])"
  19.      ActiveSheet.Range("I" & dd & "I" & rc).Value = ActiveSheet.Range("I" & dd & "I" & rc).Value
  20.     ActiveSheet.Range("J" & dd & "J" & rc).FormulaR1C1 = _
  21.         "=tinhlaiMomen(RC[-6],RC[-2],2)*RC[-2]/ABS(RC[-2])"
  22.         ActiveSheet.Range("j" & dd & "j" & rc).Value = ActiveSheet.Range("j" & dd & "j" & rc).Value
  23.     ActiveSheet.Range("K" & dd & "K" & rc).FormulaR1C1 = "=hsat(RC[-7],RC[-2],RC[-1])"
  24.     ActiveSheet.Range("k" & dd & "k" & rc).Value = ActiveSheet.Range("k" & dd & "k" & rc).Value
  25.     ActiveSheet.Range("L" & dd & "L" & rc).FormulaR1C1 = "=IFERROR(hsatQ(RC[-7],RC[-6]),1)"
  26.     ActiveSheet.Range("l" & dd & "l" & rc).Value = ActiveSheet.Range("l" & dd & "l" & rc).Value
  27.     ActiveSheet.Range("b" & dd - 1 & "I" & dd - 1).Copy
  28.    ActiveSheet.Range("b" & dd & "I" & rc).PasteSpecial (xlPasteFormats)
  29.    ActiveSheet.Range("C" & dd - 3).Select
  30.      End With
  31. End Sub
User avatar
thuanfun
Thành viên tích cực
Thành viên tích cực
Posts: 153
Joined: Thu 06/11/2008 7:46 pm
Been thanked: 14 times

Re: Nhờ người giúp chuyển đổi code từ VBA Excel sang VB.net

Post by thuanfun »

Bạn chuyển sang viết add-in bằng VB.NET phải không?
Nhận code VB.NET theo yêu cầu
dosown94
Posts: 3
Joined: Wed 26/08/2020 1:08 pm
Has thanked: 1 time

Re: Nhờ người giúp chuyển đổi code từ VBA Excel sang VB.net

Post by dosown94 »

Trả lời bác @Thuanfun: Dạ không ạ. EM muốn làm 1 thự viện liên kết chạy trong excel. Các nút lệnh và hàm tính nằm trong file .dll. Excel chỉ gọi lên và chạy
User avatar
thuanfun
Thành viên tích cực
Thành viên tích cực
Posts: 153
Joined: Thu 06/11/2008 7:46 pm
Been thanked: 14 times

Re: Nhờ người giúp chuyển đổi code từ VBA Excel sang VB.net

Post by thuanfun »

Vậy bạn định làm thư viên COM dll rồi add vào VBA để gọi từ code VBA phải không?
Nhận code VB.NET theo yêu cầu
dosown94
Posts: 3
Joined: Wed 26/08/2020 1:08 pm
Has thanked: 1 time

Re: Nhờ người giúp chuyển đổi code từ VBA Excel sang VB.net

Post by dosown94 »

Trả lời bác @Thuanfun:dạ đúng rồi đó bác ạ. em muốn làm 1 thư viện độc lập excel để không bị virus ăn mất file của em hoặc không cho mở ra
User avatar
thuanfun
Thành viên tích cực
Thành viên tích cực
Posts: 153
Joined: Thu 06/11/2008 7:46 pm
Been thanked: 14 times

Re: Nhờ người giúp chuyển đổi code từ VBA Excel sang VB.net

Post by thuanfun »

Bạn chỉ rõ xem sau khi bạn convert sang VB.Net thì những đoạn code nào ko chạy đc nhé. Mình sẽ xem giúp.
Nhận code VB.NET theo yêu cầu
Post Reply

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