Sửa code theo yêu cầu bài toán.

  • Thread starter Thread starter QQV586
  • Ngày gửi Ngày gửi
Liên hệ QC

QQV586

Thành viên chính thức
Tham gia
28/2/13
Bài viết
75
Được thích
1
Em có bài toán xác định khung đối xứng và tính tổng giá trị 2 giá trị đối xứng như file. Và code đưa ra như trên chưa đúng yêu cầu bài toán. Cảm ơn các bạn quan tâm và giúp đỡ.
 

File đính kèm

Bạn không nên đưa cả xấp đấy cho mọi người và mong được giải được đáp, sẽ có rất ít người rảnh rỗi để giải đáp cho bạn. Vì đây cũng là diễn đàn do anh em yêu lập trình chung tay với nhau, không phải diễn đàn hoạt động bằng cách chia phần thưởng cho tất cả mọi người.
Thay vào đó bạn nên tìm lỗi sai trong đoạn code của mình trước, tìm ra hẳn cái chỗ sai đó, do hàm hay do biến, .... sau đó nhờ mọi người giúp.
 
Upvote 0
Em có bài toán xác định khung đối xứng và tính tổng giá trị 2 giá trị đối xứng như file. Và code đưa ra như trên chưa đúng yêu cầu bài toán. Cảm ơn các bạn quan tâm và giúp đỡ.
bạn phải nói rõ xác định khung đối xứng như thế nào và tính tổng gì chứ ai biết mà tính
 
Upvote 0
Em có bài toán xác định khung đối xứng và tính tổng giá trị 2 giá trị đối xứng như file. Và code đưa ra như trên chưa đúng yêu cầu bài toán. Cảm ơn các bạn quan tâm và giúp đỡ.
"giá trị đối xứng" là gì vậy ???
Mã:
Public Sub Doi_Xung_Ngang()
  Dim sArr(), Res(), r As Long, sRow As Long, sCol As Byte

  With Sheet1
    sArr = .Range("A2:H" & .Range("A1000000").End(xlUp).Row).Value
  End With
  sRow = UBound(sArr) / 2
  sCol = UBound(sArr, 2)
  ReDim Res(1 To sRow + 1, 1 To sCol + 1)

  For j = 2 To sRow
    Res(1, j + 1) = j - 1
  Next j
  For i = 1 To sRow
    Res(i + 1, 1) = sArr(i, 1)
    Res(i + 1, 2) = sArr(i + sRow, 1)
    For j = 2 To sCol
      If sArr(i, j) + sArr(i + sRow, j) > 0 Then Res(i + 1, j + 1) = sArr(i, j) + sArr(i + sRow, j)
    Next j
  Next i
  With Sheet2
    .UsedRange.Clear
    .Range("A1").Resize(sRow + 1, sCol + 1) = Res
  End With
End Sub
 
Upvote 0
Em có bài toán xác định khung đối xứng và tính tổng giá trị 2 giá trị đối xứng như file. Và code đưa ra như trên chưa đúng yêu cầu bài toán. Cảm ơn các bạn quan tâm và giúp đỡ.
Chắc không đúng yêu cầu là do mấy dòng này
1542722939551.png
Bài đã được tự động gộp:

"giá trị đối xứng" là gì vậy ???
Mã:
Public Sub Doi_Xung_Ngang()
  Dim sArr(), Res(), r As Long, sRow As Long, sCol As Byte

  With Sheet1
    sArr = .Range("A2:H" & .Range("A1000000").End(xlUp).Row).Value
  End With
  sRow = UBound(sArr) / 2
  sCol = UBound(sArr, 2)
  ReDim Res(1 To sRow + 1, 1 To sCol + 1)

  For j = 2 To sRow
    Res(1, j + 1) = j - 1
  Next j
  For i = 1 To sRow
    Res(i + 1, 1) = sArr(i, 1)
    Res(i + 1, 2) = sArr(i + sRow, 1)
    For j = 2 To sCol
      If sArr(i, j) + sArr(i + sRow, j) > 0 Then Res(i + 1, j + 1) = sArr(i, j) + sArr(i + sRow, j)
    Next j
  Next i
  With Sheet2
    .UsedRange.Clear
    .Range("A1").Resize(sRow + 1, sCol + 1) = Res
  End With
End Sub
Code của Anh thiếu mất điều kiện loại dữ liệu trống so với Code cũ ạ
 
Upvote 0
Upvote 0
Chắc không đúng yêu cầu là do mấy dòng này
Bài đã được tự động gộp:


Code của Anh thiếu mất điều kiện loại dữ liệu trống so với Code cũ ạ
Các bác cho hỏi chạy nó báo lỗi thuật toán này là sao ạ.
Public Sub Doi_Xung_Ngang()
Dim sArr(), Res(), r As Long, sRow As Long, sCol As Byte

With Sheet1
sArr = .Range("A2:AS" & .Range("A1000000").End(xlUp).Row).Value
End With
sRow = UBound(sArr) / 2
sCol = UBound(sArr, 2)
ReDim Res(1 To sRow + 1, 1 To sCol + 1)

For j = 2 To sRow
Res(1, j + 1) = j - 1
Next j
For i = 1 To sRow
Res(i + 1, 1) = sArr(i, 1)
Res(i + 1, 2) = sArr(i + sRow, 1)
For j = 2 To sCol
If sArr(i, j) + sArr(i + sRow, j) > 0 Then Res(i + 1, j + 1) = sArr(i, j) + sArr(i + sRow, j)
Next j
Next i
With Sheet2
.UsedRange.Clear
.Range("A1").Resize(sRow + 1, sCol + 1) = Res
End With
End Sub
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom