Chào mừng đến với Diễn đàn Dân Kế Toán - Kế toán tổng hợp thực tế.
Kết quả 1 đến 8 của 8

Chủ đề: Thắc mắc code

  1. #1
    Ngày tham gia
    Aug 2015
    Bài viết
    0

    Thắc mắc code

    Subdien()
    Dim x As Double
    Dim y As Double
    x = Val(InputBox("nhap x = "))
    y = Val(InputBox("nhap y = "))
    If x > y Then
    For i = y + 1 To x - 1
    Cells(i, 1) = i
    Next i
    End If
    If x < y Then
    For i = x + 1 To y - 1
    Cells(i, 1) = i
    Next i
    End If
    Application.Columns(1).Select
    For Each cell In Selection
    If cell.Value Mod 2 = 0 Andcell.Value<> "" Then
    cell.Interior.Color = vbGreen
    End If
    Next cell
    End Sub
    Bây giờ e muốn nhập 1 số âm , 1 số dương bất kỳ hoặc 2 số âm thì sửa code như thế nào các bác cho e ý kiến.

  2. #2
    Ngày tham gia
    Dec 2015
    Bài viết
    4
    Ðề: Thắc mắc code




    Trích dẫn Gửi bởi akayzai1
    Subdien()
    Dim x As Double
    Dim y As Double
    x = Val(InputBox("nhap x = "))
    y = Val(InputBox("nhap y = "))
    If x > y Then
    For i = y + 1 To x - 1
    Cells(i, 1) = i
    Next i
    End If
    If x < y Then
    For i = x + 1 To y - 1
    Cells(i, 1) = i
    Next i
    End If
    Application.Columns(1).Select
    For Each cell In Selection
    If cell.Value Mod 2 = 0 Andcell.Value<> "" Then
    cell.Interior.Color = vbGreen
    End If
    Next cell
    End Sub
    Bây giờ e muốn nhập 1 số âm , 1 số dương bất kỳ hoặc 2 số âm thì sửa code như thế nào các bác cho e ý kiến.
    Thoáng nhìn vào ta thấy
    Application.Columns(1).Select
    Nghĩa là họ chọn cột A rồi . Đâu có cho cơ hội số âm

    Muốn số âm thì phải move cột xác định ra phía giữa . Ví dụ la cột F và Row của trục là row =10 . Có vậy ta mới dùng Âm . Khi âm thì nó sẽ cạy sang trái tức là Column chạy từ F đến A, hoặc từ row =10 đến 1 . Số dương thì ngược lại .

    Muốn chạy âm hay dương thì dùng Offset nhé

    Các cô cậu này học nghành gì vậy mà sao hỏi về toán ko vậy ???

  3. #3
    Ngày tham gia
    Dec 2015
    Bài viết
    4
    Ðề: Thắc mắc code

    Đề bài như vậy bác Flower: Nhập 2 số nguyên bất kỳ bằng inputbox.Điền vào cột A giá trị nằm giữa hai số đó tô màu xanh cho các ô chứa giá trị chẵn
    Nhưng khi e nhập x,y là 2 sô dương thì nó đúng.Nhưng khi nhập 1 số dương 1 số âm hoặc 2 số âm thì sai

  4. #4
    Ngày tham gia
    Aug 2015
    Bài viết
    2
    Ðề: Thắc mắc code




    Trích dẫn Gửi bởi akayzai1
    Đề bài như vậy bác Flower: Nhập 2 số nguyên bất kỳ bằng inputbox.Điền vào cột A giá trị nằm giữa hai số đó tô màu xanh cho các ô chứa giá trị chẵn
    Nhưng khi e nhập x,y là 2 sô dương thì nó đúng.Nhưng khi nhập 1 số dương 1 số âm hoặc 2 số âm thì sai
    Dĩ nhiên là SAI vì Cell(row,col) kho dùng row hay col âm
    Muốn dùng âm thì Offset(row,col)

    Example : x=-1 , y=4

    Sub dien()
    Dim x As Double
    Dim y As Double
    x = Val(InputBox("nhap x = "))
    y = Val(InputBox("nhap y = "))

    Range("A5").Select
    If x > y Then
    For i = y + 1 To x - 1
    Range("A5").Offset(x, 0) = i
    Next i
    End If
    If x < y Then
    For i = x + 1 To y - 1
    Range("A5").Offset(x, 0) = i
    Next i
    End If

    For Each cell In Selection
    If cell.Value Mod 2 = 0 And cell.Value <> "" Then
    cell.Interior.Color = vbGreen
    End If
    Next cell
    End Sub

    hiểu chưa ???? :alo::alo::alo:

  5. #5
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: Thắc mắc code

    ok rồi bác ạ
    Sub dien()
    Dim x As Double
    Dim y As Double
    x = Val(InputBox("nhap x = "))
    y = Val(InputBox("nhap y = "))
    If x > y Then
    For i = y + 1 To x - 1
    Cells(i - y, 1) = i
    Next i
    End If
    If x < y Then
    For i = x + 1 To y - 1
    Cells(i - x, 1) = i
    Next i
    End If
    Application.Columns(1).Select
    For Each cell In Selection
    If cell.Value Mod 2 = 0 And cell.Value <> "" Then
    cell.Interior.Color = vbGreen
    End If
    Next cell
    End Sub

  6. #6
    Ngày tham gia
    Nov 2015
    Bài viết
    0
    Ðề: Thắc mắc code




    Trích dẫn Gửi bởi Wind_Flower
    Dĩ nhiên là SAI vì Cell(row,col) kho dùng row hay col âm
    Muốn dùng âm thì Offset(row,col)

    Example : x=-1 , y=4

    Sub dien()
    Dim x As Double
    Dim y As Double
    x = Val(InputBox("nhap x = "))
    y = Val(InputBox("nhap y = "))

    Range("A5").Select
    If x > y Then
    For i = y + 1 To x - 1
    Range("A5").Offset(x, 0) = i
    Next i
    End If
    If x < y Then
    For i = x + 1 To y - 1
    Range("A5").Offset(x, 0) = i
    Next i
    End If

    For Each cell In Selection
    If cell.Value Mod 2 = 0 And cell.Value <> "" Then
    cell.Interior.Color = vbGreen
    End If
    Next cell
    End Sub

    hiểu chưa ???? :alo::alo::alo:
    Tiện bác cho e hỏi nốt câu này nhé.
    e cần lập 1 hàm làm tròn số về đuôi 0 hoặc 5 .Số có chữ số cuối cùng < 5 thì làm tròn =5, >=5 thì làm tròn =0.Vd: 34 làm tròn = 35,23=25; 25=30, 36=40.Nhưng khi e viết nó lại chỉ làm tròn đc về 0

    Function tong(a As Double, b As Double) As Double
    x = a + b
    y = x Mod 10
    If x <= 5 Then
    tong = 5
    End If
    If 5 < x <= 10 Then
    tong = 10
    End If
    If x > 10 Then
    If y = 0 Or y = 5 Then
    tong = x
    End If
    If 0 < y < 5 Then
    tong = x - y + 5
    End If
    If 5 < y < 10 Then
    tong = x - y + 10
    End If
    End If
    End Function

  7. #7
    Ngày tham gia
    Nov 2015
    Bài viết
    3
    Ðề: Thắc mắc code




    Trích dẫn Gửi bởi akayzai1
    Tiện bác cho e hỏi nốt câu này nhé.
    e cần lập 1 hàm làm tròn số về đuôi 0 hoặc 5 .Số có chữ số cuối cùng < 5 thì làm tròn =5, >=5 thì làm tròn =0.Vd: 34 làm tròn = 35,23=25; 25=30, 36=40.Nhưng khi e viết nó lại chỉ làm tròn đc về 0

    Function tong(a As Double, b As Double) As Double
    x = a + b
    y = x Mod 10
    If x <= 5 Then
    tong = 5
    End If
    If 5 < x <= 10 Then
    tong = 10
    End If
    If x > 10 Then
    If y = 0 Or y = 5 Then
    tong = x
    End If
    If 0 < y < 5 Then
    tong = x - y + 5
    End If
    If 5 < y < 10 Then
    tong = x - y + 10
    End If
    End If
    End Function
    :nheo::nheo:
    b là Divisor . Tại sao x = a + b !!!!!!!!!!!!!!
    y = x Mod 10 !!!!!!!!!!!!!!!!
    trong VBA dau có MOD()
    :chetne::chetne:

    Theo như đại sư CPearson thì VBA pfải tự viết là

    Function XMod(ByVal Number As Double, ByVal Divisor As Double) As Double
    Number = Int(Abs(Number))
    Divisor = Int(Abs(Divisor))
    XMod = Number - (Int(Number / Divisor) * Divisor)
    End Function

    Còn như dùng formula thì =MOD(Number,Divisor )

    Ví dụ
    Muốn 23 thành 25 thì
    =ROUND(23+MOD(23,3),0)

  8. #8
    Ngày tham gia
    Nov 2015
    Bài viết
    7
    Ðề: Ăn tiền ở chổ xài toán tử "\" đó nha!



    Mã:
    Option Explicit
    Function LàmTrònDén05(Num As Double)
     Dim So As Long
     
     If Int(Num) = Num Then
        LàmTrònDén05 = Num
     Else
        So = Num * 10 \ 1
        Select Case (So Mod 10)
        Case Is < 5
            LàmTrònDén05 = Int(Num) + 0.5
        Case Else
            LàmTrònDén05 = Int(Num + 1)
        End Select
     End If
    End Function

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •