返回列表 上一主題 發帖

[發問] Range()內字串

[發問] Range()內字串

請問各位大大

下列這四行Range()裡面的 字串 可以只用一行表示嗎??
  1. Range("A4").Select
  2.     Range(Selection, Selection.End(xlDown)).Select
  3.     Range(Selection, Selection.End(xlDown)).Select
  4.     Range(Selection, Selection.End(xlUp)).Select
複製代碼

回復 3# GBKEE
回復 2# owen06


感謝 owen06 GBKEE 的回覆


會有這想法是
我的EXCEL VBA 表單 上

動作程序
有兩個ListBox
ListBox1 內容是 sheet1~sheet9
當選擇sheet1時
ListBox2內容會顯示 sheet1"A4"之後 儲存格有資料的內容
當選擇sheet2時
ListBox2內容會顯示 sheet2"A4"之後 儲存格有資料的內容..等等

然而 這 sheet1~9 "A4" 一開始是無資料的 後續會增加
  1. Range("A4").Select
  2. If ListBox1.Value = "sheet1" Then ListBox2.List = Workbooks("活頁簿1.xlsm").Sheets("sheet1").Range(Selection, Selection.End(xlDown)).Value
  3. If ListBox1.Value = "sheet2" Then ListBox2.List = Workbooks("活頁簿1.xlsm").Sheets("sheet2").Range(Selection, Selection.End(xlDown)).Value
複製代碼
那時候測試後 如果換選擇sheet2時 這程序就出現錯誤了~
後來也就想說看可不可以把Range("A4")放入 Range(Selection, Selection.End(xlDown))裡面
  1. Range("A4").Select
  2. Range(Selection, Selection.End(xlDown)).Select
  3. Range(Selection, Selection.End(xlDown)).Select
  4. Range(Selection, Selection.End(xlUp)).Select
複製代碼
這是那時候用巨集錄製的
但如果遇到一開始"A4"沒資料的時候
這動作也就不成立了

TOP

回復 5# GBKEE

謝謝 GBKEE
剛測試後可以動作了

Sheets(ListBox1.Value)不過這邊好像要加.value 才能執行
  1. If ListBox1.Value <> "" Then
  2. ListBox2.Clear
  3. With Workbooks("活頁簿.xlsm").Sheets(ListBox1.Value)
  4. If .Range("A4").End(xlDown).Row <> .Rows.Count Then  '有資料
  5. ListBox2.List = .Range(.Range("A4"), .Range("A4").End(xlDown)).Value
  6. End If
  7. End With
  8. End If
複製代碼

TOP

回復 7# owen06


    感謝 owen06 的分享~~~

TOP

        靜思自在 : 屋寬不如心寬。
返回列表 上一主題