返回列表 上一主題 發帖

請教複製到不同的工作表無法起作用 ?如何修改?

OFFSET

選擇某範圍,如何求得offset 的值?
例如  A1:B2 即A1 移到 B2 則答案為 OFFSET(1,1)
Sub t()
    Dim rng As Range
    Set rng = Selection
???= rng.Address
  End Sub

TOP

回復 1# t8899
是這樣嗎?
  1. Option Explicit
  2. Sub EX()
  3.     Dim Rng As Range
  4.     With [a1:b21]
  5.         Set Rng = .Offset(.Rows.Count - 1, .Columns.Count - 1)
  6.         MsgBox Rng.Address
  7.     End With
  8. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復  t8899
是這樣嗎?
GBKEE 發表於 2014-8-24 10:19


正確,謝謝!

TOP

請教複製到不同的工作表無法起作用 ?如何修改?

Sub test() '請用mouse先選擇複製的範圍
    Dim rng As Range, a, z, r, rr
    Set rng = Selection
z = InputBox("輸入開始位址")
Set r = Range(z).Offset(rng.Rows.Count - 1, rng.Columns.Count - 1)
Set rr = Range(z)
ActiveSheet.Range(rr.Address, r.Address) = Selection.Formula
End Sub

本帖最後由 GBKEE 於 2014-8-25 06:00 編輯

回復 4# t8899

Sub test() '請用mouse先選擇複製的範圍
    Dim rng As Range, a, z, r, rr
    Set rng = Selection   '這必是ActiveSheet的Selection
z = InputBox("輸入開始位址")
Set r = Range(z).Offset(rng.Rows.Count - 1, rng.Columns.Count - 1)
Set rr = Range(z)
'ActiveSheet.Range(rr.Address, r.Address) = Selection.Formula   '所以這不是複製到不同的工作表的
Sheets("TEST").Range(rr.Address, r.Address) = Selection.Formula   '是這樣嗎?
End Sub
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復  t8899

Sub test() '請用mouse先選擇複製的範圍
    Dim rng As Range, a, z, r, rr
    Set rn ...
GBKEE 發表於 2014-8-25 05:53

  Set rng = Selection   '這必是ActiveSheet的Selection
這一句可以更改嗎? 如果無解,再增加一個inbox 輸入選擇的工作表可以嗎??

TOP

回復 6# t8899
有Application,     InputBox 為方法,
沒有Application,  InputBox 為函數,
  1. Option Explicit
  2. Sub Ex()
  3.     Dim rng As Range, z As Range
  4.     Set rng = Selection
  5.     Set z = Application.InputBox("輸入開始位址", Type:=8) '可在各工作表中移動,選擇儲存挌
  6.     Set z = z.Offset(rng.Rows.Count - 1, rng.Columns.Count - 1)
  7.     z.Formula = rng.Formula   '是這樣嗎?
  8. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 t8899 於 2014-8-25 06:43 編輯
回復  t8899
有Application,     InputBox 為方法,
沒有Application,  InputBox 為函數,
GBKEE 發表於 2014-8-25 06:23


可以, 但只能覆製一個儲存格

TOP

回復  t8899
有Application,     InputBox 為方法,
沒有Application,  InputBox 為函數,
GBKEE 發表於 2014-8-25 06:23


檔案中 Book1.rar (8.46 KB)
目標不對
1.選擇sheet1 c1-c3 目標 sheet2 h1 結果 sheet1 c1貼到 sheet2 h3 其餘空白
正確目標應為 sheet2 h1-h3 Offset(rng.Rows.Count - 1, rng.Columns.Count - 1)失效 ?
2.選擇sheet1 c1-c3 目標 sheet2 h1-h3 結果  sheet1 c1貼到 sheet2 h3-h5
正確目標應為 sheet2 h1-h3

TOP

回復 9# t8899
是這樣嗎?
  1. Option Explicit
  2. Sub Ex()
  3.     Dim rng As Range, z As Range
  4.     Set rng = Selection
  5.     Set z = Application.InputBox("輸入開始位址", Type:=8) '可在各工作表中移動,選擇儲存挌
  6.     If z Is Nothing Then Exit Sub
  7.     If rng.Rows.Count <> z.Cells.Rows.Count Or rng.Columns.Count <> z.Cells.Columns.Count Then
  8.        '目標與來源的欗數,列數有不一樣.
  9.        z.Cells(1).Resize(rng.Rows.Count, rng.Columns.Count).Formula = rng.Formula
  10.     Else  '反之目標與來源的欗數,列數相同
  11.         z.Formula = rng.Formula
  12.     End If
  13. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 待人退一步,愛人寬一寸,就會活得很快樂。
返回列表 上一主題