กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
274 1
URL.หัวข้อ /
URL
Selecting a given 'number' of columns...
ช่วงนี้ผมต้องส่งข้อมูลจาก Access ไปยัง Excel เพื่อสร้าง Chart หรือสรุปผลในรูปแบบที่ Excel ถนัด และได้ไปอ่านเจอกระทู้ของต่างประเทศที่เขาต้องการจะทำงานคล้ายๆ กับสิ่งที่ผมทำอยู่ คือ หาตำแหน่งคอลัมน์สุดท้ายใน Excel เพื่อจะนำไปใช้ในการระบุ Range เพื่อเขียนเป็น Chart
ที่ http://www.access-programmers.co.uk/forums/showthread.php?s=&threadid=45187
เขาสามารถที่จะนับจำนวน Fields ที่ส่งออกไปจาก Access ได้ แต่อยากรู้ว่าคอลัมน์ใน Excel จะอยู่ตำแหน่งใด ที่เขาใช้อยู่คือใช้ Select Case ซึ่งจะเขียนโค้ดยาวมาก ดังนี้
Select Case ColumnCount
Case 30
last_Column = "AD"
Case 31
last_Column = "AE"
...
Case 50
last_Column = "AX"
end case
selectRegion = "A1:" & last_Column & "2"
ผมเลยลองเขียนฟังก์ชันขึ้นมาแทน Select Case นี้ แบบนี้ครับ
Function GetRange(intX As Integer) As String
Dim intY As Integer
If intX < 27 Then
GetRange = Chr(64 + intX)
Else
intY = intX Mod 26
intX = intX \ 26
GetRange = Chr(64 + intX) & Chr(64 + intY)
End If
End Function
ลองทดลองแบบนี้
? GetRange(50)
AX
เวลาใช้ก็ให้ตัดส่วน Select Case ออก แล้วเปลี่ยนเป็น
selectRegion = "A1:" & GetRange(ColumnCount ) & "2"
ที่ http://www.access-programmers.co.uk/forums/showthread.php?s=&threadid=45187
เขาสามารถที่จะนับจำนวน Fields ที่ส่งออกไปจาก Access ได้ แต่อยากรู้ว่าคอลัมน์ใน Excel จะอยู่ตำแหน่งใด ที่เขาใช้อยู่คือใช้ Select Case ซึ่งจะเขียนโค้ดยาวมาก ดังนี้
Select Case ColumnCount
Case 30
last_Column = "AD"
Case 31
last_Column = "AE"
...
Case 50
last_Column = "AX"
end case
selectRegion = "A1:" & last_Column & "2"
ผมเลยลองเขียนฟังก์ชันขึ้นมาแทน Select Case นี้ แบบนี้ครับ
Function GetRange(intX As Integer) As String
Dim intY As Integer
If intX < 27 Then
GetRange = Chr(64 + intX)
Else
intY = intX Mod 26
intX = intX \ 26
GetRange = Chr(64 + intX) & Chr(64 + intY)
End If
End Function
ลองทดลองแบบนี้
? GetRange(50)
AX
เวลาใช้ก็ให้ตัดส่วน Select Case ออก แล้วเปลี่ยนเป็น
selectRegion = "A1:" & GetRange(ColumnCount ) & "2"
1 Reply in this Topic. Dispaly 1 pages and you are on page number 1
1 @R06714
Time: 0.1163s