2015-04-29 46 views
0

請檢查我的問題......遍歷工作簿中的用戶定義的表

有關工作簿:它有13張工作表Sheet1是「主」,其餘12名爲月「月」,「可能」 ...等等...直到「Mar」.....

在「master」表中,用戶可以定義他想要格式化的月份。用戶可以定義像「(」Apr「,」NA「 ,「Mar」)...代碼應讀取由用戶輸入的值並格式化與月份名稱匹配的表格並跳過NA。

代碼應該做的:

1)VBA應該檢查細胞O7的值,以O18其是像(4月,三月,一月,NA)

2)的代碼應該用戶定義的值然後去工作單名4月至Mar和跳過NA ..

Sub Copyd() 
Dim apr As String 
Dim may As String 
    'Similarly for all the months till mar' 
apr = Cells(7, 15).Value 
may = Cells(8, 15).Value 
    'Assigned cell value for all the month till mar(Cell contains values 
    'like (Ex: apr,jan,NA) which are user defined 
Dim Months As Variant 
Dim Month As Variant 
Months = Array(jan, feb, mar, apr, may, jun, jul, _ 
    aug, sep, oct, nov, dec) 
ActiveSheet.Name = Months 
For Each Month In Months 
    'formatting code here 
Next Month 
End Sub 

回答

0

根據我的情況,這工作得更好。

Sub Copyd() 
Sheets("Master").Select 
Dim apr As String 
Dim may As String 

    'Similarly for all the months till mar' 

apr = Cells(4, 56).Value 
may = Cells(5, 56).Value 

    'Assigned cell value for all the month till mar(Cell contains values 
    'like: apr,jan,NA) which are user defined 

Dim i As Long 
For i = 3 To 13 
With Sheets(i).Activate 

If ActiveSheet.Name = apr Then 
Call test 
ActiveSheet.Name = apr 
ThisWorkbook.Activate 
Else 
On Error Resume Next 
End If 

If ActiveSheet.Name = may Then 
Call test 
ActiveSheet.Name = may 
ThisWorkbook.Activate 
Else 
On Error Resume Next 
End If 

    'Similarly for all the months till mar' 

End With 
Next i 
End Sub 
1

試試這個:

Dim wshSrc As Worksheet, wshDst As Worksheet 
Dim i As Integer, wshName As String 

On Error Resume Next 

Set wshSrc = ThisWorkbook.Worksheets("Master") 
For i = 7 to 18 
    wshName = wshSrc.Range("O" & i) 
    Set wshDst = ThisWorkbook.Worksheets(wshName) 
    If Err.Number = 9 'worksheet does not exists (NA) 
     Err.Clear() 
     Goto SkipNext 
    End If 
    'here code to copy id's 
SkipNext: ' 
Next 
+0

@Haider,非常歡迎。你能接受我的答案作爲解決方案嗎?乾杯,Maciej –

相關問題