Nhờ người chuyển đổi code sang VB.net

sownnuce

Thành viên mới
Tham gia ngày
8 Tháng tám 2020
Bài viết
5
Được thích
0
Điểm
13
Tuổi
25
Xin chào các 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. nên em cần trợ giúp. rất mong nhận được góp ý từ các anh chị ạ
Mã:
Sub LocD()
dd = ActiveSheet.Cells(3, 1).Value
dc = ActiveSheet.Cells(5, 1).Value - 1
    With Application
        ActiveSheet.Shapes("txtbox").Select
        On Error Resume Next
        If Selection.Characters.Text = "Analyze-Hide" Then
            Selection.Characters.Text = "Analyze-Show"
            rc1 = ActiveSheet.Cells(dd - 2, 2).End(xlDown).Row
            ActiveSheet.Range("B" & rc1 + 1 & ":A" & dc).EntireRow.Hidden = True
       Else
            Selection.Characters.Text = "Analyze-Hide"
            ActiveSheet.Range("B" & dd & ":B" & dc).EntireRow.Hidden = False
        End If
        rc2 = .Cells(dd - 3, 2).End(xlDown).Row
 rc = Application.Max(rc2, dd)
    ActiveSheet.Range("I" & dd & ":I" & rc).FormulaR1C1 = _
        "=tinhlaiMomen(RC[-5],RC[-2],3)*RC[-2]/ABS(RC[-2])"
     ActiveSheet.Range("I" & dd & ":I" & rc).Value = ActiveSheet.Range("I" & dd & ":I" & rc).Value
    ActiveSheet.Range("J" & dd & ":J" & rc).FormulaR1C1 = _
        "=tinhlaiMomen(RC[-6],RC[-2],2)*RC[-2]/ABS(RC[-2])"
        ActiveSheet.Range("j" & dd & ":j" & rc).Value = ActiveSheet.Range("j" & dd & ":j" & rc).Value
    ActiveSheet.Range("K" & dd & ":K" & rc).FormulaR1C1 = "=hsat(RC[-7],RC[-2],RC[-1])"
    ActiveSheet.Range("k" & dd & ":k" & rc).Value = ActiveSheet.Range("k" & dd & ":k" & rc).Value
    ActiveSheet.Range("L" & dd & ":L" & rc).FormulaR1C1 = "=IFERROR(hsatQ(RC[-7],RC[-6]),1)"
    ActiveSheet.Range("l" & dd & ":l" & rc).Value = ActiveSheet.Range("l" & dd & ":l" & rc).Value
    ActiveSheet.Range("b" & dd - 1 & ":I" & dd - 1).Copy
   ActiveSheet.Range("b" & dd & ":I" & rc).PasteSpecial (xlPasteFormats)
   ActiveSheet.Range("C" & dd - 3).Select
     End With
End Sub
 

tigertiger

Coming back ...
Tham gia ngày
25 Tháng một 2007
Bài viết
1,646
Được thích
1,569
Điểm
860
Xin chào các 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. nên em cần trợ giúp. rất mong nhận được góp ý từ các anh chị ạ
Mã:
Sub LocD()
dd = ActiveSheet.Cells(3, 1).Value
dc = ActiveSheet.Cells(5, 1).Value - 1
    With Application
        ActiveSheet.Shapes("txtbox").Select
        On Error Resume Next
        If Selection.Characters.Text = "Analyze-Hide" Then
            Selection.Characters.Text = "Analyze-Show"
            rc1 = ActiveSheet.Cells(dd - 2, 2).End(xlDown).Row
            ActiveSheet.Range("B" & rc1 + 1 & ":A" & dc).EntireRow.Hidden = True
       Else
            Selection.Characters.Text = "Analyze-Hide"
            ActiveSheet.Range("B" & dd & ":B" & dc).EntireRow.Hidden = False
        End If
        rc2 = .Cells(dd - 3, 2).End(xlDown).Row
rc = Application.Max(rc2, dd)
    ActiveSheet.Range("I" & dd & ":I" & rc).FormulaR1C1 = _
        "=tinhlaiMomen(RC[-5],RC[-2],3)*RC[-2]/ABS(RC[-2])"
     ActiveSheet.Range("I" & dd & ":I" & rc).Value = ActiveSheet.Range("I" & dd & ":I" & rc).Value
    ActiveSheet.Range("J" & dd & ":J" & rc).FormulaR1C1 = _
        "=tinhlaiMomen(RC[-6],RC[-2],2)*RC[-2]/ABS(RC[-2])"
        ActiveSheet.Range("j" & dd & ":j" & rc).Value = ActiveSheet.Range("j" & dd & ":j" & rc).Value
    ActiveSheet.Range("K" & dd & ":K" & rc).FormulaR1C1 = "=hsat(RC[-7],RC[-2],RC[-1])"
    ActiveSheet.Range("k" & dd & ":k" & rc).Value = ActiveSheet.Range("k" & dd & ":k" & rc).Value
    ActiveSheet.Range("L" & dd & ":L" & rc).FormulaR1C1 = "=IFERROR(hsatQ(RC[-7],RC[-6]),1)"
    ActiveSheet.Range("l" & dd & ":l" & rc).Value = ActiveSheet.Range("l" & dd & ":l" & rc).Value
    ActiveSheet.Range("b" & dd - 1 & ":I" & dd - 1).Copy
   ActiveSheet.Range("b" & dd & ":I" & rc).PasteSpecial (xlPasteFormats)
   ActiveSheet.Range("C" & dd - 3).Select
     End With
End Sub
Đưa sang đây có thể hợp hơn

Nhưng code toàn công thức với công thức Excel trong VBA, trước tiên nên chuyển sang các lệnh thuần VBA rồi chuyển thì nhanh hơn
 

sownnuce

Thành viên mới
Tham gia ngày
8 Tháng tám 2020
Bài viết
5
Được thích
0
Điểm
13
Tuổi
25
Top Bottom