EXCEL VBA 參照值複製貼上指令 求救高手大大幫忙

因業務需要 困惑良久
拜託高手大大幫忙解惑

工作表一 的指定內容 自動複製到 工作表二指定位置

工作表一A1是參照值
參照值 是加總出來的數字 例:1234

B11.C11.D11.E11 這四個欄位是準備複製貼上的資料

如何能夠讓工作表一B11.C11.D11.E11 四個欄位的資料
參照工作表一A1統計出來的數值
複製到
工作表二貼上
貼上工作表二的位置為 A1234.B1234.C1234.D1234
EDILUO wrote:
A1234

確定是要貼到A欄的1千多列位置?(雖然我知道這是「舉例」,但還是覺得會不會是我會錯意了.....)

「貼上」的方式是要使用?....就[貼上全部],還是僅[貼上值]......?(方式不同,結果可能不一樣)

另外,既然樓主您會問「VBA .....指令」,應該代表您能使用、執行VBA。而單純把某工作格的內容傳到另外的位置,其難度應該是更低才對?...........幾行指令就搞定啊?.........(所以會不會從頭到尾我誤會了什麼?)

如果樓主確實要的結果跟我想的一樣「簡單」,那我想不用太久,等版上幾位神人抽出空來,立即就能提出方式給您參考~~就請您稍等囉。

~~如果幾位大大覺得難度太「低」不想出手,那之後小弟再來提供一下(看樓主是要貼上值還是....?).......(不過通常幾位大大「舉手」之勞就處理掉了,應該輪不到我才是.....呵)
Der,misser1
EDILUO
只要貼上"值" 想實在 我是個新到不能在新的新手.可能表達方式太不盡完善..
EDILUO
因為 工作表 很多 每天都有不同的數值 要在相對應儲存格貼上至於舉例的位置...其實很多 到上萬列都有我每天都在做多且反覆的動作
可能表達能力太差 ....
講講我每日的繁瑣作業好了.....
範例
B1儲存格 =INDIRECT("工作表二!A"&$A$1)
C1儲存格 =INDIRECT("工作表二!B"&$A$1)
D1儲存格 =INDIRECT("工作表二!B"&$A$1)
E1儲存格 =INDIRECT("工作表二!D"&$A$1)

A1儲存格的數值是1234

那在我原先範例中 工作表一的儲存格就會自動跑出工作表二所對應的 值

當需要修正時
工作表一B11.C11.D11.E11 四個欄位的 值
複製到 工作表二 相對應的儲存格

A!儲存格的值是1234
就將工作表一B11.C11.D11.E11 四個欄位的 值
複製到
A1234.B1234.C1234.D1234

這是我每天的繁瑣作業......
實際上 每天需要複製貼上 至少千次數......
一個一個對好 慢慢複製貼上 都兩三個小時過了.....

所以才發文求救......
VBA怎麼寫入都不對...一直顯示文法錯誤...
小弟又是非常之新的新手........
拜託高手幫忙.....
我好久沒用VBA了, 試試看是不是你要的
A1 是列的對照位置,按巨集就會將B11:E11 的資料以值的方式貼到工作表2 對照列
測試檔

Sub test1()
X = Sheets("工作表1").Cells(1, 1)
Sheets("工作表1").Range("B11:E11").Copy
Sheets("工作表2").Activate
Range("A" & X & "").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
Sheets("工作表1").Activate
End Sub
EDILUO
修改部分卻一直顯示錯誤 下方已發上連結 萬分感激
EDILUO wrote:
這是我每天的繁瑣作業......
實際上 每天需要複製貼上 至少千次數......
一個一個對好 慢慢複製貼上 都兩三個小時過了.....


兩三個小時?這實在是太神奇了~~看來樓主真的需要VBA無誤,真的可以大幅度減輕您的工作時間和負擔。

不過您提到:
EDILUO wrote:
當需要修正時
工作表一B11.C11.D11.E11 四個欄位的 值
複製到 工作表二 相對應的儲存格


這個「當需要修正時」是怎麼決定?單純人工判斷?......那是不是該做個按鈕,來觸發執行[貼上作業]的VBA?

EDILUO wrote:
實際上 每天需要複製貼上 至少千次數......

所以樓主有好幾個[工作表二]?還是有好幾個[A1]、[B11、C11.....](可能有B21、C21....也要處理?)?......否則為何需要上千次呢?

如果只是單純完成下面這個:
EDILUO wrote:
讓工作表一B11.C11.D11.E11 四個欄位的資料
參照工作表一A1統計出來的數值
複製到
工作表二貼上
貼上工作表二的位置為 A1234.B1234.C1234.D1234

VBA程式碼真的非常簡單..........但如果樓主手動需要做到幾個小時,那可能還有後續[類似]的步驟要完成(可能是不同的檔案,或是工作表,或其他工作格..........)

如果只post [B11.C11.D11.E11 -->貼上工作表二的位置為 A1234.B1234.C1234.D1234] 的VBA程式碼,樓主是否能自己舉一反三,運用到其他後續步驟?..........(可以的話,問題當然就簡單了.....)

或者,樓主要把後續整個需要幾小時的作業需求也一起提出來(切換不同的工作表名稱....等),讓大大們發揮創意,直接幫樓主[量身打造]一個[最少步驟]的快速完成程式?
(當樓主體驗到幾小時的工作可以在幾分鐘,甚至更快就全部完成時,想必更能有滿滿的成就感,去面對下一步挑戰囉)

呃,如果樓主您現成的[工作表一]沒有什麼機密內容(或是清除掉重要內容、甚至標題.....),方便的話,也可以丟上來,好方便直接幫您修改(加加觸發按鈕之類的).......同時再把流程說明得更清楚些,完成的結果才能更完美~~。
(當然,若是樓主不方便,僅要上述簡單的需求範例,也OK,看樓主您囉)
Der,misser1
EDILUO
聽您的建議發上連結了 再拜託大大幫忙
EDILUO wrote:
https://docs...(恕刪)


測試檔

為了執行連續複製指令(15個工作表1次完成), 把每5個為一組的對照表空白拉掉。
你可以在每個系數工作表中建立按鈕執行複製.
100個工作表就把 i 由15 改成 100

Sub test1()
Set S = ActiveSheet
Application.ScreenUpdating = False
For i = 1 To 15
X = ActiveSheet.Cells(13, 4).Offset(i, 0).Value
Range("F36:M36").Copy
Sheets("B" & i & "").Activate
Range("A" & X & "").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
S.Activate
Next i
Application.ScreenUpdating = True
Range("F36:M36").ClearContents
End Sub
EDILUO
或者J35.K36.L36.M36要複製到B1的E F G H列 對應的欄位請問文法哪裡作更動??
EDILUO
大大 您有接近我需要的 但是能否單純貼上需要的地方 其他的地方不動 例如我僅僅需要複製"J36-M36" 至 B1儲存格 "E-H列" 則B1儲存格"A-D列"的內容不作任何更動
大致看了一下樓主的檔案......目前的疑惑是:裡面有係數一、三......七~~這麼多的係數檔是(我原本以為係數表只會有一,目標檔B1、B2.....有很多,是一對多~~~現在變成多對多)?

因為看來係數一.....七,每個要執行貼上的目標位置好像也都一樣?.........如果這些係數表是要全部「同時」執行的話,那結果不是有點怪嗎?(係數一把x值貼到目標B1的某格,然後係數三又立刻把y值也貼到B1的那個.....一直到係數七跑完,那前面係數一~六是跑心酸的?)

又或者樓主只是需要設N(7)個係數表,到時由樓主自行判斷,要用哪個係數表來做貼上的來源?

另外,樓主檔案內有提到:
B1-B15需各別設置按鈕執行....
這又是我誤會嗎?要貼上時,不是B1...B15都得接收資料?那不是在係數表裡(或是多一張[設定]表)放一個按鈕來觸發執行就好?~~若要B1...B15每個表都放按鈕,而按鈕做的事都一樣(觸發相同程序),那光要把按鈕複製到所有B (不只15,可能有100),不是很累嗎?(當然,這也可以考慮用VBA來完成).....

如果樓主能再多說明一點,我想可以這幾天幫樓主直接修改這個檔案,把VBA程式和按鈕(全部只要1個就好?)都放進去,樓主下載回去沒問題就可以直接測試使用。(當然,樓主也可以只取出VBA程式,自行放回到您原本完整的檔案中去使用).........

又或者peter3057大的程式,樓主已經夠用;或其他大大(看不下去,因為我總是問東問西的....可是明明他們都看得懂樓主意思)立刻出手解決....也ok,總之樓主的問題有得到解決最好。

樓主有空就回覆一下囉。
Der,misser1
EDILUO
係數工作表不一定。有時有100個係數表 有時有150個以上B1-B15是固定的(實際有100個固定)
再問一下樓主:

係數表中的參照欄位(D)的數字(右邊黃底的顯示來源,也是將來要貼回的列),好像是B1~B15內的,綠色底的列號?
這個列數值,會每次(每天....)變動嗎?樓主需要自行手動修改(打上去)?

如果是一直不變的,那就沒啥差別,但如果是(會變)的話,那有沒有可能,也做個VBA,自動取得每一個B工作表的參考列號,填入到係數表的這個D欄?~~比如每個B表都已有綠色底的參考位置,也只會有那麼一列是有顏色底色.....那就可以讓程式去判斷,自動抓出列號.......

最後,B1~B15有可能變成B100.....那規則是?(每個B工作表都有相同的名稱開頭...?或直接就是B+數字無誤...)~~係數表中的綠色底位置的規律是?(目前是第36列,可是如果「真實的」係數表的B15變成一直到B100,那綠色的列位置也會變動不是嗎?.....還是要加個參數,讓樓主可以自行指定綠色底的列位置?)

~~~每次我搞程式時,總是想很多......(希望能順利完成,不然總是會「卡住」)~~然後就會有大大出來示範打臉:你想太多了.....根本簡單就完成了~~哈
Der,misser1
EDILUO
希望能有幾種文法..係數表中的J36.K36.L36.M36複製貼上到B1 或其他B+ 表內的 E F G H列 相對應的欄位
EDILUO
係數表內的參數對應 希望能各別設置觸發按鈕 例如 只需要複製貼上到B3 我按觸發按鈕 僅 修改B3 其他不動
勞煩高手大大們費心幫忙了
感激不盡
關閉廣告
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!