2016-09-23 19 views
5

मेरे पास यह कोड है जो जांचता है कि अनुलग्नक का अनुलग्नक आकार 10MB से अधिक है या नहीं। अब, यदि अटैचमेंट 10 एमबी से बड़ा है, तो यह msgbox पर फ़ाइल नाम प्रदर्शित करता है, तो मैं उन कोशिकाओं को चुनना या हाइलाइट करना चाहता हूं जिनमें यह अनुलग्नक 10 एमबी से अधिक है लेकिन यह पता नहीं है कि यह कैसे करें।एकाधिक सेल्स का चयन

यहाँ मैं क्या करने की कोशिश की है या नहीं:

Function checkAttSize() 

Application.ScreenUpdating = False 
Dim attach As Object 
Dim attSize() As String 
Dim loc() As String 
Dim num As Long 
Dim rng As Range 

Set objOutlook = CreateObject("Outlook.Application") 
Set objMail = objOutlook.CreateItem(0) 

Set main = ThisWorkbook.Sheets("Main") 
lRow = Cells(Rows.count, 15).End(xlUp).Row 
efCount = 0 
num = 0 
With objMail 
    If lRow > 22 Then 
    On Error GoTo errHandler 
     For i = 23 To lRow 
      'attach.Add main.Range("O" & i).value 
      'totalSize = totalSize + 
      If (FileLen(main.Cells(i, "O").value)/1000000) > 10 Then 
       ReDim Preserve attSize(efCount) 
       ReDim Preserve loc(num) 
       'store file names 
       attSize(efCount) = Dir(main.Range("O" & i)) 
       'store cell address 
       loc(num) = i 
       efCount = efCount + 1 
       num = num + 1 
       found = True 
      End If 
     Next i 
    End If 
End With 

If found = True Then 
    MsgBox "Following File(s) Exceeds 10MB Attachment Size Limit:" & vbCrLf & vbCrLf & Join(attSize, vbCrLf) _ 
    & vbCrLf & vbCrLf & "Please try removing the file(s) and try again.", vbCritical, "File Size Exceed" 
'trying to select the cell addresses 
    For i = 1 To num 
     rng = rng + main.Range("O" & loc(i)).Select ' Ive also tried & 
    Next i 
    checkAttSize = True 
    Exit Function 
End If 
Exit Function 
errHandler: 
MsgBox "Unexpected Error Occured.", vbCritical, "Error" 
checkAttSize = True 
End Function 

मदद के लिए धन्यवाद।

उत्तर

6

सीमा का चयन करने की कोई आवश्यकता नहीं है। उपयोगकर्ता द्वारा एक एकल मिस क्लिक सीमा से दूर ध्यान लेते हैं। .Select का उपयोग करके भी निर्बाध रूप से रन टाइम त्रुटियां हो सकती हैं। इसके बजाए उन्हें रंग दें।

इस लाइन

If (FileLen(main.Cells(i, "O").value)/1000000) > 10 Then 

के बाद इस लाइन

main.Cells(i, "O").Interior.ColorIndex = 3 

कोशिकाओं अब लाल रंग में रंग का हो जाएगा जोड़ें।

और अंत में, संदेश

If found = True Then 
    MsgBox "File(s) Exceeding 10MB Attachment Size Limit has been colored in red:" 
End If 
साथ उपयोगकर्ता को सचेत
संबंधित मुद्दे