返回列表 上一主題 發帖

VBA中公式轉變出錯問題

VBA中公式轉變出錯問題

有一些在VBA中的程式寫法出錯問題如附件,希望各位可以幫忙指點一下需如何更改。
謝謝。 test20160903.zip (8.39 KB)

回復 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
複製代碼

TOP

回復 1# pcwh3

TOP

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

圖片 3.jpg 回復 2# c_c_lai

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

TOP

回復 4# pcwh3
你是說將 lc = [bz1].End(xlToLeft).Column
改成 lc = [ba1].End(xlToLeft).Column ?
其結果是一樣的。

TOP

回復 4# pcwh3
你的 [A2] 公式為:
[a2] = "=sum(b2: cells(2,lc-1))"
怎可能 [a2] = =sum(b2:az2)才是正確???

TOP

[a1] = "=sum(" & Range(Cells(1, lc - 11), Cells(1, lc - 1)).Address & ")"
[a2] = "=sum(b2:" & Cells(2, lc - 1).Address(0, 0) & ")"

TOP

回復 7# 准提部林
謝謝版大的指導,又瞭解了另一種的表示方式,
真多謝!

TOP

回復 7# 准提部林

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

TOP

回復 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)

TOP

        靜思自在 : 一句溫暖的話,就像往別人身上灑香水,自己會沾到兩三滴。
返回列表 上一主題