giúp đỡ vấn đề hoán vị trong VBA excel

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

cudau95

Thành viên mới
Tham gia
22/7/19
Bài viết
9
Được thích
0
Em có 1 file excel như sau .
sheet1 : Cột hs = 4 + sheet2!A1
sheet2 : có 1 hàm tính hs tại sheet2 như sau
Bước 1: A1 = A1 + 0,5
Bước 2 : giá trị hàm tính hs là giá trị của cột hs tại sheet1
Bước 3 : trả lại giá trị ban đầu của A1 = A1

Nếu với những ngôn ngữ kiểu C ... thì rất đơn giản em có thể tạo 1 biến trung gian lưu giá trị của A1 sau khi tính toán xong thì gán lại giá trị A1 = biến trung gian.
Nhưng trên VBA thì trong hàm em không gán giá trị cho cell được chọn rất mong mọi người giúp ạ
 

File đính kèm

...
Nếu với những ngôn ngữ kiểu C ... thì rất đơn giản em có thể tạo 1 biến trung gian lưu giá trị của A1 sau khi tính toán xong thì gán lại giá trị A1 = biến trung gian.
Nhưng trên VBA thì trong hàm em không gán giá trị cho cell được chọn rất mong mọi người giúp ạ
Bạn đưa cái code C đơn giản lên đây, tôi sẽ mách cho cách đổi sang VBA.
 
Upvote 0
kiểu như này b
x= a+4
tg = a
a=a+0.1
kq=x
tg=a
Bài đã được tự động gộp:

Bạn đưa cái code C đơn giản lên đây, tôi sẽ mách cho cách đổi sang VBA.
mình hiện tại đang bị vướng đoạn làm sao để copy value của cell để lưu vào biến kq. vì nếu là range(ketqua).value không được nó thành vòng lặp vô tận.
 
Upvote 0
mình muốn làm sao khi mà D5 = 500 thì G6 = 500. nhưng khi D5 tăng lên 550 nhưng giá trị của biến thu trong hàm test2 trong cell G6 vẫn 500 b à :((. giúp mình với
 

File đính kèm

Upvote 0
ai giúp mình với làm sao để lấy value 1 cell bằng hàm mà kiểu paste value
 
Upvote 0
Mình có 1 việc như sau .
Bạn muốn hàm test2 hoạt động như thế nào?

trong file test2 của mình dưới đây có giải thích rõ bạn ơi. mình cần ví dụ như khi gõ =test2(A2) kết quả trả về là 31.9 luôn chứ không phải copy paste option values .
 

File đính kèm

Upvote 0
Mình có 1 việc như sau .


trong file test2 của mình dưới đây có giải thích rõ bạn ơi. mình cần ví dụ như khi gõ =test2(A2) kết quả trả về là 31.9 luôn chứ không phải copy paste option values .
TBGT lặpGT congTB2kq lặpGiải thíchkết quả ban đầu
5.1​
5.2​
0.1​
5.1​
31.9​
31,9=5,2+7,2+6,5
31.8​
7.2​
7.5​
0.3​
7.2​
32.1​
32,1=7,5+5,1+6,5
31.8​
6.5​
6.7​
0.2​
6.5​
32.4​
32,4=6,7+7,2+5,1
31.8​
Tại dòng thứ 1 : 31,9=5,2+7,2+6,5, bạn cần giải thích từng số lấy ở đâu ra
 
Upvote 0
TBGT lặpGT congTB2kq lặpGiải thíchkết quả ban đầu
5.1​
5.2​
0.1​
5.1​
31.9​
31,9=5,2+7,2+6,5
31.8​
7.2​
7.5​
0.3​
7.2​
32.1​
32,1=7,5+5,1+6,5
31.8​
6.5​
6.7​
0.2​
6.5​
32.4​
32,4=6,7+7,2+5,1
31.8​
Tại dòng thứ 1 : 31,9=5,2+7,2+6,5, bạn cần giải thích từng số lấy ở đâu ra
b ơi trong này có video b xem hộ mình với
 

File đính kèm

Upvote 0
Bạn tham khảo code dưới đây.
Mã:
Sub abcd()
Dim Mang
Dim Tam
Dim i, j, k
Mang = Sheet2.Range("A2:E4")
For i = 1 To 3
    Mang(i, 1) = Mang(i, 2)
    Tam = Mang(1, 1) + Mang(2, 1) + 3 * Mang(3, 1)
    Mang(i, 5) = Tam
    Mang(i, 1) = Mang(i, 4)
Next i
Sheet2.Range("A6").Resize(3, 5) = Mang
End Sub
 
Upvote 0
Bạn tham khảo code dưới đây.
Mã:
Sub abcd()
Dim Mang
Dim Tam
Dim i, j, k
Mang = Sheet2.Range("A2:E4")
For i = 1 To 3
    Mang(i, 1) = Mang(i, 2)
    Tam = Mang(1, 1) + Mang(2, 1) + 3 * Mang(3, 1)
    Mang(i, 5) = Tam
    Mang(i, 1) = Mang(i, 4)
Next i
Sheet2.Range("A6").Resize(3, 5) = Mang
End Sub
b ơi b còn cách nào khác k . trong file thực tế của mình hàm nó phức tạp gồm 100 biến và bậc cao. tính bằng phương pháp lặp . lên mình k thể làm theo kiểu
Tam = Mang(1, 1) + Mang(2, 1) + 3 * Mang(3, 1)

này được b . mình chỉ có thể làm theo kiểu copy paste như video thôi. cảm ơn b .
 
Upvote 0
b ơi b còn cách nào khác k . trong file thực tế của mình hàm nó phức tạp gồm 100 biến và bậc cao. tính bằng phương pháp lặp . lên mình k thể làm theo kiểu
Tam = Mang(1, 1) + Mang(2, 1) + 3 * Mang(3, 1)

này được b . mình chỉ có thể làm theo kiểu copy paste như video thôi. cảm ơn b .
b ơi b còn cách nào khác k . trong file thực tế của mình hàm nó phức tạp gồm 100 biến và bậc cao. tính bằng phương pháp lặp . lên mình k thể làm theo kiểu
Tam = Mang(1, 1) + Mang(2, 1) + 3 * Mang(3, 1)

này được b . mình chỉ có thể làm theo kiểu copy paste như video thôi. cảm ơn b .
Bạn gửi file thực lên đi
 
Upvote 0
Bạn gửi file thực lên đi
vì 1 vài lý do mình k công bố file đó được b . chỉ ví dụ là nó phức tạp gồm nhiều biến và có sử dụng vòng lặp của excel. nên mình không đưa vào hàm được. thì có cách nào làm được kiểu copy paste như video mình đăng k bạn. sub hay func đều dduwoc b
 

File đính kèm

Upvote 0
vì 1 vài lý do mình k công bố file đó được b . chỉ ví dụ là nó phức tạp gồm nhiều biến và có sử dụng vòng lặp của excel. nên mình không đưa vào hàm được. thì có cách nào làm được kiểu copy paste như video mình đăng k bạn. sub hay func đều dduwoc b
Chạy code
Mã:
Sub ABC()
  Dim KetQua As Range, Rng As Range, Res()
  Dim i As Long, sRow As Long, tmp
  Application.Calculation = xlCalculationAutomatic
  Application.ScreenUpdating = False
  Set KetQua = Sheets("Sheet1").Range("B6")
  Set Rng = Sheets("Sheet2").Range("A2:B4")
  sRow = Rng.Rows.Count
  ReDim Res(1 To sRow, 1 To 1)
  For i = 1 To sRow
    tmp = Rng(i, 1).Formula
    Rng(i, 1).Value = Rng(i, 2).Value
    Res(i, 1) = KetQua.Value
    Rng(i, 1).Formula = tmp
  Next i
  Sheets("Sheet2").Range("E2").Resize(sRow) = Res
  Application.ScreenUpdating = True
End Sub
 
Upvote 0
Chạy code
Mã:
Sub ABC()
  Dim KetQua As Range, Rng As Range, Res()
  Dim i As Long, sRow As Long, tmp
  Application.Calculation = xlCalculationAutomatic
  Application.ScreenUpdating = False
  Set KetQua = Sheets("Sheet1").Range("B6")
  Set Rng = Sheets("Sheet2").Range("A2:B4")
  sRow = Rng.Rows.Count
  ReDim Res(1 To sRow, 1 To 1)
  For i = 1 To sRow
    tmp = Rng(i, 1).Formula
    Rng(i, 1).Value = Rng(i, 2).Value
    Res(i, 1) = KetQua.Value
    Rng(i, 1).Formula = tmp
  Next i
  Sheets("Sheet2").Range("E2").Resize(sRow) = Res
  Application.ScreenUpdating = True
End Sub
May mà có bác làm giúp, giờ quả thực là đã hết cách với thớt!
 
Upvote 0
May mà có bác làm giúp, giờ quả thực là đã hết cách với thớt!
Bác ấy kiên nhẫn chứ tôi thì chỉ thích làm việc với những người có thiện chí. Đầu tiên phải chứng tỏ thiện chí của mình bằng cách viết, diễn tả vấn đề thật rõ ràng. Diễn tả đã nhỏ giọt, viết lại lười gõ cho trọn từ thì đúng là loại "thảy bài đó, hốt cốt về" rồi.
 
Upvote 0
Chạy code
Mã:
Sub ABC()
  Dim KetQua As Range, Rng As Range, Res()
  Dim i As Long, sRow As Long, tmp
  Application.Calculation = xlCalculationAutomatic
  Application.ScreenUpdating = False
  Set KetQua = Sheets("Sheet1").Range("B6")
  Set Rng = Sheets("Sheet2").Range("A2:B4")
  sRow = Rng.Rows.Count
  ReDim Res(1 To sRow, 1 To 1)
  For i = 1 To sRow
    tmp = Rng(i, 1).Formula
    Rng(i, 1).Value = Rng(i, 2).Value
    Res(i, 1) = KetQua.Value
    Rng(i, 1).Formula = tmp
  Next i
  Sheets("Sheet2").Range("E2").Resize(sRow) = Res
  Application.ScreenUpdating = True
End Sub
cảm ơn b nhiều. mình sẽ cố hiểu từng câu lệnh của b .
Bài đã được tự động gộp:

cảm ơn mọi người !
 
Upvote 0
Web KT

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

Back
Top Bottom