返回列表 上一主題 發帖

[發問] 如何將Sheet1不連續欄位儲存到Sheet2

[發問] 如何將Sheet1不連續欄位儲存到Sheet2

各位前輩您好

小弟在Excel進階功能的部份是新手,
參考之前前輩的說明和敘述,
寫出這個sample,
這個有兩個sheet,
我要將sheet1的資料在按save鍵時複製到sheet2當做資料庫,
但是不知道如何將姓名,學號和電話如何在sheet2完整呈現,
不然都在sheet2只有第一筆有姓名,學號和電話,
第二筆之後在姓名,學號和電話是空的.
可以麻煩前輩幫忙解決小弟的問題嗎?
非常感謝. sample.rar (8.7 KB)
Steven

回復 1# steven_lkk

我剛剛測試過看不出有你說的情形呢, (執行結果如下圖)
不知你說的與我的理解是否不同?

TOP

  1. Sub Ex()
  2. With Sheet1
  3. For Each a In .Range(.[A4], .[A65536].End(xlUp))
  4. ar = Array(a, .[A2], .[C2], .[E2], a.Offset(, 1), a.Offset(, 1), a.Offset(, 2), a.Offset(, 3), a.Offset(, 4))
  5. Sheet2.[A65536].End(xlUp).Offset(1, 0).Resize(, 8) = ar
  6. Next
  7. End With
  8. End Sub
複製代碼
學海無涯_不恥下問

TOP

各位前輩您好

感謝各位的幫忙,
Hsieh前輩解決了小弟的問題,
小弟研讀Hsieh前輩的語法後,
但實在不懂下面的語法,
ar = Array(a, .[A2], .[C2], .[E2], a.Offset(, 1), a.Offset(, 1), a.Offset(, 2), a.Offset(, 3), a.Offset(, 4))
Sheet2.[A65536].End(xlUp).Offset(1, 0).Resize(, 8) = ar
盼Hsieh前輩可以再教導小弟一番.
非常感謝.
Steven

TOP

本帖最後由 steven_lkk 於 2010-9-6 22:43 編輯

各位前輩您好

如果防止使用者編輯sheet2,
我之前是用鎖儲存格的方式,
但是發現會造成無法複製.
前輩可以再次教導小弟一番.
非常感謝.
Steven

TOP

回復 5# steven_lkk


ar = Array(a, .[A2], .[C2], .[E2], a.Offset(, 1), a.Offset(, 1), a.Offset(, 2), a.Offset(, 3), a.Offset(, 4)) '指定ar陣列變數內容
Sheet2.[A65536].End(xlUp).Offset(1, 0).Resize(, 8) = ar '將ar陣列寫入Sheet2的A欄最下面資料的下一個空格擴展成1列8欄範圍
至於保護問題
程式開始加入
Sheet2.Unprotect "password"  'password是你的工作表保護密碼
程式結束加入
Sheet2.Protect "password"
學海無涯_不恥下問

TOP

前輩您好
請問一下,ar陣列變數內容是否像這個圖一樣的對應位置呢?

那最第一個的a, (ar = Array(a, .....)代表什麼呢?
為什麼又會多一個a.Offset(, 1)呢?
非常感謝您的幫忙.
Steven

TOP

前輩您好

小弟依照上個sample當範本來練習製作一個報價單,
結果按了save後在List�堨X現幾個問題,
1.日期不是我原來的內容
2.我只想現有的兩筆資料複製到list��,結果list出現重覆多餘的資料

我該怎麼修正呢??

另外有一個問題,
如果單號的組成是英文字母+日期+兩位數的流水號,
希望能自動產生單號,
不知該如何寫這段呢?
盼前輩賜教.
非常感謝
sample2.rar (12.67 KB)
Steven

TOP

各位前輩您好~

小弟失試著嘗試修正問題,但是幾日下來未修的正果,
盼各位前輩賜教.

非常感謝
Steven

TOP

  1. Private Sub CommandButton1_Click()
  2. With Sheet3
  3. For Each a In .Range(.[B13], .[B26].End(xlUp))
  4. i = i + 1
  5. ar = Array(.[f7].Text, "s" & .[f7].Text & "-" & Format(i, "00"), .[C6], .[C7], .[C8], .[C9], .[C10], .[F8], a, a.Offset(, 1), a.Offset(, 2), a.Offset(, 3), a.Offset(, 4))
  6. Sheet8.[A65536].End(xlUp).Offset(1, 0).Resize(, 13) = ar
  7. Next
  8. End With
  9. End Sub
複製代碼
另外報價單b欄因有空白字符,所以.[B26].End(xlUp)會判斷錯誤,選中b15:b26,按一下delete.

TOP

        靜思自在 : 有多少力量就做多少事,不要心存等待,等待才會落空。
返回列表 上一主題