Board logo

標題: vba 比對儲存格範圍內字串並轉置後加入字元 [打印本頁]

作者: t591nm    時間: 2015-7-28 10:42     標題: vba 比對儲存格範圍內字串並轉置後加入字元

大家好,小妹因工作關係剛學習vba
使用版本為2003

錄製巨集後得到以下程式
    Range("C10:H10").Select
    ActiveCell.FormulaR1C1 = "=TRANSPOSE(首頁!R14C2:R34C2)"
    Selection.FormulaArray = "=TRANSPOSE(首頁!R14C2:R34C2)"

我想改成我需要的條件
1.C13:AB13儲存格中若有"Hz"的字串,則在那一列中該儲存格含有執行轉置的動作(註:首頁!R14C2:R34C2內為所設定好的資料,有包含空白),若該儲存格內沒有"Hz"的字串則不需要經過轉置

2.執行轉置後,有經過轉置的儲存格,除了C列的第一格外都要加入"CL :"

大概知道要使用for 與if then,可是小妹剛學習vba,還不知道怎麼兜起來
不知道該怎麼下手去學習這樣的語言,特來請教各位大大,感謝。
作者: lpk187    時間: 2015-7-28 11:04

回復 1# t591nm

方便上傳檔案嗎?否則很難理解你的問題
作者: t591nm    時間: 2015-7-28 11:37

如範例檔所示
作者: GBKEE    時間: 2015-7-28 14:32

回復 3# t591nm
試試看
  1. Option Explicit
  2. Sub Ex()
  3.     Dim AR, i As Integer
  4.     AR = Application.Transpose([首頁!B14:B34].Value) '範圍導入陣列
  5.     With Sheet2.Range("C10:K10")
  6.         .Clear
  7.        For i = 1 To .Cells.Count
  8.             If .Cells(i).Offset(3) = "Hz" Then
  9.                 .Cells(i) = AR(i)
  10.                 If i > 1 Then .Cells(i) = "CL:" & .Cells(i)
  11.             End If
  12.        Next
  13.     End With
  14. End Sub
複製代碼

作者: t591nm    時間: 2015-7-28 15:36

回復 4# GBKEE

[attach]21544[/attach]
   

如圖所示出現(上面一張下面一張)
我只是改了巨集名稱及列的範圍而已
請問Sheet2 是指該工作表名稱嗎
那如果我的工作表名稱是數字加英文
是否也可以把Sheet2直接改成數字加英文

感謝回答
作者: lpk187    時間: 2015-7-28 16:25

本帖最後由 lpk187 於 2015-7-28 16:26 編輯

回復 5# t591nm

可依據下圖例子更改你的Sheet?
    [attach]21546[/attach]
作者: t591nm    時間: 2015-7-28 16:34

回復 6# lpk187



感恩大大
已經成功
謝謝您




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)