標題:
字元與變數 要如何串接
[打印本頁]
作者:
alex520188
時間:
2012-7-21 00:18
標題:
字元與變數 要如何串接
各位大大好
小弟一直搞不清楚的地方
字元與變數 要如何才能正確串接呢?
變數 與 變數 又該如何串接
請大大指導一下
Private Sub CommandButton1_Click()
Dim Fs, t, Wb As Workbook, St As Worksheet
Dim k%, X%, i%
'On Error Resume Next
Fs = Application.GetOpenFilename("Excel,*.xls", , , , True)
If Not IsArray(Fs) Then Exit Sub
For Each t In Fs
If t <> ThisWorkbook.Name Then
Set Wb = GetObject(t)
For Each St In Wb.Worksheets
With St
k = .Range("B65536").End(xlUp).Row
End With
With St.Range("A9:O9")
For i = .Cells.Count To 1 Step -1
If .Cells(i).Borders.LineStyle = xlContinuous Then
X = i
Exit For
End If
Next
End With
With St.PageSetup
If k <= 45 Then
.PrintArea = Range("A1:X & 45").Address '這行的語法 串不出來
ElseIf k <= 82 Then
.PrintArea = "A1:x" & 82 '這行的語法 串不出來
ElseIf k <= 115 Then
.PrintArea = "A1:x" & 115 '這行的語法 串不出來
ElseIf k <= 151 Then
.PrintArea = "A1:x" & 151 '這行的語法 串不出來
Else
.PrintArea = "A1:" & X & k & "" '這行的語法 串不出來
End If
End With
With St.Range("A12:X" & 151).Borders '這行的語法 串不出來
.LineStyle = xlContinuous
.Weight = xlHairline
.ColorIndex = 1
End With
St.PrintOut
Next
Wb.Close 0
End If
Next
End Sub
複製代碼
作者:
kimbal
時間:
2012-7-21 00:35
.PrintArea = Range("A1:X45").Address
.PrintArea = "A1:x82"
.PrintArea = "A1:x115"
.PrintArea = "A1:x151"
.PrintArea = "A1:X" & trim(str(k))
With St.Range("A12:X151").Borders
作者:
alex520188
時間:
2012-7-21 09:26
回復
2#
kimbal
謝謝版大的指點 不過在經過測試之後
With PageSetup
If K <= 45 Then
.PrintArea = "A1:x45"
上式中的x 並非我要的型態(變數x)
與 x = i 的x 無法連結
可否請大大在幫我看一下^-^:D
還有一個小問題就是 Trim(Str(K)) 這串是什麼意思???:Q
Private Sub CommandButton1_Click()
Dim Fs, t, Wb As Workbook, St As Worksheet
Dim K%, x%, i%
Fs = Application.GetOpenFilename("Excel,*.xls", , , , True) '
If Not IsArray(Fs) Then Exit Sub
For Each t In Fs
If t <> ThisWorkbook.Name Then
Set Wb = GetObject(t)
For Each St In Wb.Worksheets
With St.Cells
K = .Range("B65536").End(xlUp).Row
End With
With St.Range("A9:O9")
For i = .Cells.Count To 1 Step -1
If .Cells(i).Borders.LineStyle = xlContinuous Then
x = i
Exit For
End If
Next
End With
With St.PageSetup
If K <= 45 Then
.PrintArea = "A1:x45"
'.PrintArea = Range("A1:X45").Address
ElseIf K <= 82 Then
.PrintArea = "A1:x82"
'.PrintArea = "A1:x82"
ElseIf K <= 115 Then
.PrintArea = "A1:x115"
'.PrintArea = "A1:x115"
ElseIf K <= 151 Then
.PrintArea = "A1:x151"
'.PrintArea = "A1:x151"
Else
.PrintArea = "A1:x" & Trim(Str(K)) '列印範圍"
'.PrintArea = "A1:X" & Trim(Str(K))
'.Zoom = 100 '縮放比例
End If
End With
With St.Range("A12:x151").Borders
'With St.Range("A12:X151").Borders
.LineStyle = xlContinuous '線種類 =實線
.Weight = xlHairline '線粗細=極細
.ColorIndex = 1 ' 線色 , 1=黑色
End With
St.PrintOut
Next
Wb.Close 0
End If
Next
End Sub
複製代碼
作者:
alex520188
時間:
2012-7-29 15:59
各位前輩能幫解答一下嗎~~~~
作者:
oobird
時間:
2012-7-29 16:18
Sub yy()
x = 100
MsgBox Range(Cells(1, 1), Cells(45, x)).Address
End Sub
複製代碼
運行一下應該就明白了。
作者:
alex520188
時間:
2012-7-30 23:18
回復
5#
oobird
謝謝oobird老師的指導
另外我把他套進 With St.
Range(Cells(1, 1), Cells(45, x)).Borders
.LineStyle = xlContinuous
.Weight = xlHairline
.ColorIndex = 1
End With
為何執行起來有錯誤 是哪裡寫的不對嘛??
作者:
oobird
時間:
2012-7-31 08:46
若你執行時當前工作表不是St的話,要這樣寫才能被識別:
With St.Range( St.Cells(1, 1), St.Cells(45, x)).Borders
作者:
alex520188
時間:
2012-7-31 10:46
標題:
RE: 字元與變數 要如何串接(已解決)
回復
7#
oobird
再次謝謝oobird老師的指導
我當前執行的工作表是st, 只是一值跑不過
後來貼上oobird前輩所指點的語法後 該段設定就能正常執行了
雖然一直搞不太董 不過還是要謝謝各位先進的指點^-^:lol
作者:
GBKEE
時間:
2012-7-31 14:10
回復
8#
alex520188
我當前執行的工作表是st, 只是一值跑不過
如果你的程式是在 工作表模組 且不是st工作表模組 就會如此
工作表模組 工作表中的物件 如沒指明父層名稱 ,預設為 此工作表模組的工作表.
當前執行的工作表是st 你的程式是在 是st工作表模組 不會如此的
當前執行的工作表是st 你的程式是在 是一般模組 或是ThisWorkbook模組 也不會如此的
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)