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

Liên hệ QC

sownnuce

Thành viên mới
Tham gia
8/8/20
Bài viết
5
Được thích
0
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
 
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
 
Web KT
Back
Top Bottom