Board logo

標題: VBA中公式轉變出錯問題 [打印本頁]

作者: pcwh3    時間: 2016-9-3 11:25     標題: VBA中公式轉變出錯問題

有一些在VBA中的程式寫法出錯問題如附件,希望各位可以幫忙指點一下需如何更改。
謝謝。[attach]25117[/attach]
作者: c_c_lai    時間: 2016-9-3 14:31

回復 1# pcwh3
是這樣麼?
  1. Sub test20160903()
  2.     Dim lc As Integer

  3.     lc = [bz1].End(xlToLeft).Column
  4.     '  MsgBox lc

  5.     [a1] = "=sum(" & ExChg(1, lc - 10) & ", " & ExChg(1, lc - 1) & ")"
  6.     [a2] = "=sum(b2:" & ExChg(2, lc - 1) & ")"
  7. End Sub

  8. Function ExChg(r As Integer, c As Integer) As String
  9.     ExChg = Chr(64 + c) & CStr(r)
  10. End Function
複製代碼

作者: c_c_lai    時間: 2016-9-3 14:35

回復 1# pcwh3
[attach]25118[/attach]
作者: pcwh3    時間: 2016-9-3 15:20

本帖最後由 pcwh3 於 2016-9-3 15:22 編輯

[attach]25121[/attach]回復 2# c_c_lai

剛試過。但如果我將LC位置更改到BA(例如),運行MACRO之後的結果是錯的。
這是甚麼原因。
在A2中應為=sum(b2:az2)才是正確。
作者: c_c_lai    時間: 2016-9-3 15:50

回復 4# pcwh3
你是說將 lc = [bz1].End(xlToLeft).Column
改成 lc = [ba1].End(xlToLeft).Column ?
其結果是一樣的。
作者: c_c_lai    時間: 2016-9-3 15:56

回復 4# pcwh3
你的 [A2] 公式為:
[a2] = "=sum(b2: cells(2,lc-1))"
怎可能 [a2] = =sum(b2:az2)才是正確???
作者: 准提部林    時間: 2016-9-3 16:09

[a1] = "=sum(" & Range(Cells(1, lc - 11), Cells(1, lc - 1)).Address & ")"
[a2] = "=sum(b2:" & Cells(2, lc - 1).Address(0, 0) & ")"
作者: c_c_lai    時間: 2016-9-3 17:32

回復 7# 准提部林
謝謝版大的指導,又瞭解了另一種的表示方式,
真多謝!
[attach]25124[/attach]
作者: pcwh3    時間: 2016-9-3 23:50

回復 7# 准提部林

多謝幫忙。實證代入我真實運作的macro 中,整個運行暢順快捷。
但對你所提的address. (0,0) 不甚明瞭原理。
可以的話可否講解一下,或提供參考路徑。
謝謝。
作者: 准提部林    時間: 2016-9-4 11:11

回復 9# pcwh3

看一下
MsgBox Range("A1:F5").Address
MsgBox Range("A1:F5").Address(0, 0)
MsgBox Range("A1:F5").Address(1, 0)
MsgBox Range("A1:F5").Address(0, 1)




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)