2014-10-17 194 views
0

我正在爲我們的部門制定任務列表。 工作簿是建立如下表:在excel中查找並替換文本

 
Master task list 
Person A 
Person B 
Person C 

當一個新的任務(列C)被分配給將被自動複製到該人員的任務列表底部的人。 當人員執行他/她的任務時,他們將在列註釋(列M)中輸入註釋,並在列%(列K)中輸入進度。

我想創建一個VBA腳本,只需點擊一下按鈕,輸入的所有註釋和進度都會在主任務列表表單中更新。

我試過各種代碼(.find; = address; Match)。並沒有得到任何代碼工作。 我的頭現在紡:-(

任何人都可以請幫助我。

任務的數量變化,以及在主機任務列表表中的位置(新任務是在表的頂部進入。)

謝謝

+1

「我想創建一個腳本VBA」,或者你想別人爲你做呢? – pnuts 2014-10-17 04:53:10

+0

我想要一個VBA腳本,只需點擊一下按鈕即可更新主任務列表 – Marco 2014-10-17 08:36:13

回答

0

我創建後面有一個VBA文本的命令按鈕。

Private Sub Update_Click() 

Dim nextrow As Long, i As Integer 
Dim comments As String, task As String, progress As Double 
Dim w10 As Worksheet, w20 As Worksheet 
Dim sourcebook As Workbook 
Dim findrow As Long, findcolumn As Long 

Set sourcebook = ActiveWorkbook 
Set w10 = sourcebook.Sheets("Master task list") 
Set w20 = sourcebook.Sheets("Harsh C") 

nextrow = w20.Range("C" & w20.Rows.Count).End(xlUp).Row 

Range("M14", "M" & nextrow).Select 
With Selection.Interior 
    .Pattern = xlSolid 
    .PatternColorIndex = xlAutomatic 
    .color = 5296274 
    .TintAndShade = 0 
    .PatternTintAndShade = 0 
End With 

For i = 14 To nextrow 
    comments = w20.Cells(i, 13).Value 
    progress = w20.Cells(i, 11).Value 
    task = w20.Cells(i, 3).Value 
    findrow = w10.Cells.Find(what:=task, MatchCase:=True).Row 
    w10.Cells(findrow, 13).Value = comments 
    w10.Cells(findrow, 11).Value = progress 
On Error Resume Next 
    Cells(i, 13).Select 
    With Selection.Interior 
     .Pattern = xlNone 
     .TintAndShade = 0 
     .PatternTintAndShade = 0 
    End With 
Next i 

End Sub 

Iv'e創建了兩個字符串,用於捕獲需要複製到主任務列表中的更改。 我在主任務列表(.find)上查找唯一的任務描述,並返回找到任務的行號。 然後我將現有的進度和評論替換爲新的進展和評論。

細胞我只是做了展示,Excel正執行更新任務的用戶的着色。

1

如果您已經建立這個部分:

當一個新的任務(列C)被分配給一個人,這將是自動的盟友複製到個人任務列表

所有你需要做的就是添加一個任務ID到主列表,並從每個片上,VLOOKUP,也許間接引用此底部。

如果你的主列表有任務被分配給這個公式的人會在D2進入主列表上:

=VLOOKUP(A2,INDIRECT("'"&B2&"'!B1:Z10000"),10,FALSE) 

其中:

  • A2是任務ID在主列表
  • B2是表單名稱/人員(例如人員A)
  • 範圍B1:Z10000是人員表單上的查找範圍
  • 數字10是ID字段和人員表上的註釋之間的相對距離,列B包含任務ID。

表:主列表
A .............. B ................. C .... .......... D .................... E
任務ID ....人員.......新任務..Percentage ...評論
1 ..............人A ....任務1 ...... 70 ............. ....人A Comm 1
2 ..............人B ....任務2 ...... 12 .......... ....... Person B TestComment 1
3 .............. Person C .... Task 3 ...... 34 ....... .......... Person C TestComm 1
4 .............. Person A .... Task 4 ...... 23 .... .............個人AC omm 2
5 ..............人員B ....任務5 ...... 41 ................ 。Person B TestComment 2
6 .............. Person C .... Task 6 ...... 26 .............. ... Person C TestComm 2

Sheet:Person A
B ............ C ............ K ...... .............中號
任務ID..Task ......進展%..評論
1 ............任務1。 .. 70 .................人A Comm 1
4 ............任務4 ... 23 ..... ............人A Comm 2

工作表:個人B
B ............ C .......... ..K ................... ...,M
任務ID..Task ......進度%.....評論
2 ............任務2 ... 12 .... ................人B TestComment 1
5 ............任務5 ... 41 ......... ...........人B TestComment 2

表:人員C
B ............ C ........... .K ...................中號
任務ID..Task ......進展%..評論
3 ....... .....任務3 ... 34 .................人員C TestComm 1
6 ............任務6。 .. 26 ................. Person C TestComm 2

間接是一種引用另一個單元格的方式,而無需通過創建該引用的字符串來明確指出它。

所以,如果B2 =某甲

的公式將解析:

= VLOOKUP(A2, '某甲' B1:Z10000,10,FALSE)

+0

= vlookup函數對我來說不起作用,因爲單元格是動態的。新行插入列表頂部,所以我會每次都需要改變vlookup函數。謝謝 – Marco 2014-10-20 03:42:28