Note: The other languages of the website are Google-translated. Back to English
登入  \/ 
x
or
x
註冊  \/ 
x

or

如何僅通過Excel從Outlook發送工作表?

如果要通過Outlook通過Excel從工作簿中通過電子郵件發送單個工作表,則可以將工作表作為附件,正文內容或PDF文件發送。 但是,有沒有更快的方法可以讓您在Excel中處理此問題?

使用“發送到郵件收件人”命令從Excel發送單個工作表作為正文

使用VBA代碼從Excel發送單個工作表作為附件

使用VBA代碼從Excel發送單個工作表為PDF文件


箭頭藍色右氣泡 使用“發送到郵件收件人”命令從Excel發送單個工作表作為正文

Excel支持我們使用“發送到郵件收件人”命令通過電子郵件將活動工作表作為正文內容髮送。 您可以執行以下操作:

如果您使用Excel 2007、2010或2013,則需要添加 發送到郵件收件人 命令 快速訪問工具欄 第一。

1。 點擊圖標 自定義快速訪問工具欄,並選擇 更多命令,請參見屏幕截圖:

doc-email-sheet1

2. 而在中 Excel選項 對話框中選擇 功能區中沒有的命令從中選擇命令 下拉列表,然後選擇 發送到郵件收件人 選項,然後單擊 添加>> 按鈕添加此命令,最後單擊 OK 保存此設置。 看截圖:

doc-email-sheet2

3. 發送到郵件收件人 命令已插入 快速訪問工具欄,請參見屏幕截圖:

doc-email-sheet3

4。 然後點擊這個 發送到郵件收件人 圖標按鈕,並彈出一個提示框, 電子郵件 提示框,選中 發送當前工作表作為郵件正文,然後點擊 OK。 看截圖:

doc-email-sheet4

5。 在工作表數據上方將顯示一個電子郵件編輯框,您可以在相應的文本框中輸入收件人,主題和簡介。 看截圖:

doc-email-sheet5

6. 然後點擊 發送此Sheet將此活動工作表作為郵件正文發送給您的特定人員。


箭頭藍色右氣泡 使用VBA代碼從Excel發送單個工作表作為附件

如果您想通過電子郵件將活動工作表作為附件發送,以下VBA代碼可以為您提供幫助。

1。 激活您要發送的工作表。

2。 按住 ALT + F11 鍵,然後打開 Microsoft Visual Basic for Applications窗口.

3。 點擊 插入 > 模塊,然後將以下代碼粘貼到 模塊窗口.

VBA代碼:從Excel發送當前工作表作為附件

Sub SendWorkSheet()
'Update 20131209
Dim xFile As String
Dim xFormat As Long
Dim Wb As Workbook
Dim Wb2 As Workbook
Dim FilePath As String
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Application.ScreenUpdating = False
Set Wb = Application.ActiveWorkbook
ActiveSheet.Copy
Set Wb2 = Application.ActiveWorkbook
Select Case Wb.FileFormat
Case xlOpenXMLWorkbook:
    xFile = ".xlsx"
    xFormat = xlOpenXMLWorkbook
Case xlOpenXMLWorkbookMacroEnabled:
    If Wb2.HasVBProject Then
        xFile = ".xlsm"
        xFormat = xlOpenXMLWorkbookMacroEnabled
    Else
        xFile = ".xlsx"
        xFormat = xlOpenXMLWorkbook
    End If
Case Excel8:
    xFile = ".xls"
    xFormat = Excel8
Case xlExcel12:
    xFile = ".xlsb"
    xFormat = xlExcel12
End Select
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(Now, "dd-mmm-yy h-mm-ss")
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
With OutlookMail
    .To = "skyyang@extendoffice.com"
    .CC = ""
    .BCC = ""
    .Subject = "kte features"
    .Body = "Please check and read this document."
    .Attachments.Add Wb2.FullName
    .Send
End With
Wb2.Close
Kill FilePath & FileName & xFile
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Application.ScreenUpdating = True
End Sub

備註:在上面的代碼中,您可以根據自己的需要更改以下信息。

  • .To =“ skyyang @extendoffice.com”
  • .CC =“”
  • .BCC =“”
  • .Subject =“ KTE功能”
  • .Body =“請檢查並閱讀本文檔。”

4。 然後點擊 F5 鍵運行此代碼,然後會彈出一個提示框,單擊 進度條完成時,然後當前工作表已作為附件發送給您的收件人。

doc-email-sheet6


箭頭藍色右氣泡 使用VBA代碼從Excel發送單個工作表為PDF文件

有時,您需要將工作表報告發送給其他人,但不希望其他人修改它。 在這種情況下,您可以從Excel將工作表作為PDF文件發送。

1. 激活您要發送的工作表。

2。 按住 ALT + F11 鍵,然後打開 Microsoft Visual Basic for Applications窗口.

3。 點擊 插入 > 模塊,然後將以下代碼粘貼到 模塊窗口.

VBA代碼:從Excel以PDF文件形式發送當前工作表

Sub SendWorkSheetToPDF()
'Update 20131209
Dim Wb As Workbook
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Set Wb = Application.ActiveWorkbook
FileName = Wb.FullName
xIndex = VBA.InStrRev(FileName, ".")
If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
    .To = "skyyang@extendoffice.com"
    .CC = ""
    .BCC = ""
    .Subject = "kte features"
    .Body = "Please check and read this document."
    .Attachments.Add FileName
    .Send
End With
Kill FileName
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub

注意:在上面的代碼中,您可以根據需要更改以下信息。

  • .To =“ skyyang @extendoffice.com”
  • .CC =“”
  • .BCC =“”
  • .Subject =“ KTE功能”
  • .Body =“請檢查並閱讀本文檔。”

4。 然後按 F5 鍵,然後會彈出一個提示框,單擊 進度條確定後,活動的工作表已作為PDF文件發送給特定的人。

doc-email-sheet6

筆記:

1.這些方法僅在將Outlook用作郵件程序時可用。

2.發送當前工作表後,您可以轉到Outlook以確保已成功發送電子郵件。


創建郵件列表然後發送電子郵件

Kutools for Excel's 創建郵件列表 或 發送 電子郵件 實用程序可以在工作表中快速創建郵件列表,然後將相同的主題,相同的內容和相同的附件發送到多個電子郵件地址。
doc郵件清單1
doc向下箭頭
doc郵件清單2

相關文章:

如何通過Outlook從Excel發送當前工作簿?

如何通過Excel從Outlook發送/通過電子郵件發送單元格範圍?


最佳辦公效率工具

Kutools for Excel解決了您的大多數問題,並使您的生產率提高了80%

  • 重用: 快速插入 複雜的公式,圖表 以及您以前使用過的任何東西; 加密單元 帶密碼 創建郵件列表 並發送電子郵件...
  • 超級公式欄 (輕鬆編輯多行文本和公式); 閱讀版式 (輕鬆讀取和編輯大量單元格); 粘貼到過濾範圍...
  • 合併單元格/行/列 不會丟失數據; 拆分單元格內容; 合併重複的行/列...防止細胞重複; 比較範圍...
  • 選擇重複或唯一 行; 選擇空白行 (所有單元格都是空的); 超級查找和模糊查找 在許多工作簿中; 隨機選擇...
  • 確切的副本 多個單元格,無需更改公式參考; 自動創建參考 到多張紙; 插入項目符號,複選框等...
  • 提取文字,添加文本,按位置刪除, 刪除空間; 創建和打印分頁小計; 在單元格內容和註釋之間轉換...
  • 超級濾鏡 (將過濾方案保存並應用於其他工作表); 高級排序 按月/週/日,頻率及更多; 特殊過濾器 用粗體,斜體...
  • 結合工作簿和工作表; 根據關鍵列合併表; 將數據分割成多個工作表; 批量轉換xls,xlsx和PDF...
  • 超過300種強大功能。 支持Office / Excel 2007-2019和365。支持所有語言。 在您的企業或組織中輕鬆部署。 完整功能30天免費試用。 60天退款保證。
kte選項卡201905

Office選項卡為Office帶來了選項卡式界面,使您的工作更加輕鬆

  • 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
  • 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
  • 每天將您的工作效率提高50%,並減少數百次鼠標單擊!
officetab底部
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Bhattacharjee · 1 years ago
    This is to inform you that i have an VBA code for send email from outlook with the help of excel vba,now i want to put "MDD Code" & " MDD Name" as well as Cells(i, 1) & Cells(i, 2) in a table like that.

    MDD Code MDD Name
    M123 Joydip

    I am sending you the VBA Code,Request you for help.
    VBA Code
    ----------------------------------------------------------------------------------------------------------------------------------------------
    Sub sendmail()

    Dim olapp As Outlook.Application

    Dim olmail As Outlook.MailItem

    For i = 2 To 35

    Application.ScreenUpdating = False

    Set olapp = New Outlook.Application

    Set olmail = olapp.CreateItem(olMailItem)

    With olmail

    olmail.To = Cells(i, 4).Value

    olmail.CC = Cells(i, 6).Value

    olmail.Subject = Cells(i, 7).Value

    olmail.HTMLBody = "Dear Partner ," & _

    "
    Please find the attchment." & _

    "

    MDD Code : " & Cells(i, 1) & _

    "
    MDD Name : " & Cells(i, 2) & _

    "






    Joydip Bhattacharjee" & _

    "
    Company" & _

    "
    MIS" & _

    "
    Country" & _

    "
    Contact No : 7602066491"







    olmail.Attachments.Add Cells(i, 8).Value

    'On Error Resume Next

    'olmail.Attachments.Add Cells(i, 9).Value

    'On Error Resume Next

    'olmail.Attachments.Add Cells(i, 10).Value

    'On Error Resume Next

    'olmail.Attachments.Add Cells(i, 11).Value

    'On Error Resume Next

    'olmail.Attachments.Add Cells(i, 12).Value

    'On Error Resume Next

    'olmail.Attachments.Add Cells(i, 13).Value

    'On Error Resume Next

    'olmail.Attachments.Add Cells(i, 14).Value

    'On Error Resume Next

    olmail.Send

    End With

    Set olmail = Nothing

    Next

    End Sub
  • To post as a guest, your comment is unpublished.
    mehmet · 2 years ago
    merhaba ben bunu belirli periyotta otomatik mail atmasını nasıl ayarlayabilirim
  • To post as a guest, your comment is unpublished.
    Oscar Eseisa · 3 years ago
    Excelent code. Thanks!
  • To post as a guest, your comment is unpublished.
    Dave · 3 years ago
    Anyway I can easily send an excel worksheet through my outlook without all this ?? I can send the worksheet context, but no the workbook as an attachment. On my work computer I can send from word and excel, but am having trouble at home.
  • To post as a guest, your comment is unpublished.
    Richard · 3 years ago
    Hi! Is it possible to use this code, but instead of sending straight away it opens up the mail?
    • To post as a guest, your comment is unpublished.
      Sunny · 3 years ago
      You can try this code:
      Sub SendWorkSheet()
      'Update 20180109
      Dim xFile As String
      Dim xFormat As Long
      Dim Wb As Workbook
      Dim Wb2 As Workbook
      Dim FilePath As String
      Dim FileName As String
      Dim OutlookApp As Object
      Dim OutlookMail As Object
      On Error Resume Next
      Application.ScreenUpdating = False
      Set Wb = Application.ActiveWorkbook
      ActiveSheet.Copy
      Set Wb2 = Application.ActiveWorkbook
      Select Case Wb.FileFormat
      Case xlOpenXMLWorkbook:
      xFile = ".xlsx"
      xFormat = xlOpenXMLWorkbook
      Case xlOpenXMLWorkbookMacroEnabled:
      If Wb2.HasVBProject Then
      xFile = ".xlsm"
      xFormat = xlOpenXMLWorkbookMacroEnabled
      Else
      xFile = ".xlsx"
      xFormat = xlOpenXMLWorkbook
      End If
      Case Excel8:
      xFile = ".xls"
      xFormat = Excel8
      Case xlExcel12:
      xFile = ".xlsb"
      xFormat = xlExcel12
      End Select
      FilePath = Environ$("temp") & "\"
      FileName = Wb.Name & Format(Now, "dd-mmm-yy h-mm-ss")
      Set OutlookApp = CreateObject("Outlook.Application")
      Set OutlookMail = OutlookApp.CreateItem(0)
      Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
      With OutlookMail
      .To = "skyyang@extendoffice.com"
      .CC = ""
      .BCC = ""
      .Subject = "kte features"
      .Body = "Please check and read this document."
      .Attachments.Add Wb2.FullName
      .Display
      ' .Send
      End With
      Wb2.Close
      Kill FilePath & FileName & xFile
      Set OutlookMail = Nothing
      Set OutlookApp = Nothing
      Application.ScreenUpdating = True
      End Sub

      Please let me know if it works for you, thank you.
  • To post as a guest, your comment is unpublished.
    Sherry · 4 years ago
    This code works good, however, does anyone know a way to automate a field as an alert for the email to go automatically based on a date column?
  • To post as a guest, your comment is unpublished.
    Adanma · 4 years ago
    Kindly help me out urgently. This the first time I am using the send current worksheet as PDF but the below code did not work at all and the dialogue to allow did not show up when I presses ctrl+G.

    I also want to know what to change to reference a cell that contained the email address instead of "to a specific email address.

    Sub SendWorkSheetToPDF()
    'Update 20131209
    Dim Wb As Workbook
    Dim FileName As String
    Dim OutlookApp As Object
    Dim OutlookMail As Object
    On Error Resume Next
    Set Wb = Application.ActiveWorkbook
    FileName = Wb.FullName
    xIndex = VBA.InStrRev(FileName, ".")
    If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
    FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
    Set OutlookApp = CreateObject("Outlook.Application")
    Set OutlookMail = OutlookApp.CreateItem(0)
    With OutlookMail
    .To = "skyyang@extendoffice.com"
    .CC = ""
    .BCC = ""
    .Subject = "kte features"
    .Body = "Please check and read this document."
    .Attachments.Add FileName
    .Send
    End With
    Kill FileName
    Set OutlookMail = Nothing
    Set OutlookApp = Nothing
    End Sub
  • To post as a guest, your comment is unpublished.
    Ramakumar · 5 years ago
    Sir

    I am able to send selected worksheet as attachment by including subject & Text.
    But the file name is showing as book1-02-apr-2016....

    Instead i want to give the file name in the code itself ( same name to continue every time i send)

    Kindly helpme
  • To post as a guest, your comment is unpublished.
    Archana · 5 years ago
    Can we allow the user to add the email ID with above mentioned code... Its works really good if we mention the To email id...
  • To post as a guest, your comment is unpublished.
    CHARLES · 5 years ago
    hi,
    im french , sorry for my english.
    How is it possible to put the value's cell of my sheet in .too/ .CC ...

    i think is it like :

    Sub SendWorkSheet()
    'Update 20131209
    Dim xFile As String
    Dim xFormat As Long
    Dim Wb As Workbook
    Dim Wb2 As Workbook
    Dim FilePath As String
    Dim FileName As String
    Dim OutlookApp As Object
    Dim OutlookMail As Object
    On Error Resume Next
    Application.ScreenUpdating = False
    Set Wb = Application.ActiveWorkbook
    ActiveSheet.Copy
    Set Wb2 = Application.ActiveWorkbook
    Select Case Wb.FileFormat
    Case xlOpenXMLWorkbook:
    xFile = ".xlsx"
    xFormat = xlOpenXMLWorkbook
    Case xlOpenXMLWorkbookMacroEnabled:
    If Wb2.HasVBProject Then
    xFile = ".xlsm"
    xFormat = xlOpenXMLWorkbookMacroEnabled
    Else
    xFile = ".xlsx"
    xFormat = xlOpenXMLWorkbook
    End If
    Case Excel8:
    xFile = ".xls"
    xFormat = Excel8
    Case xlExcel12:
    xFile = ".xlsb"
    xFormat = xlExcel12
    End Select
    FilePath = Environ$("temp") & "\"
    FileName = Wb.Name & Format(Now, "dd-mmm-yy h-mm-ss")
    Set OutlookApp = CreateObject("Outlook.Application")
    Set OutlookMail = OutlookApp.CreateItem(0)
    Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
    With OutlookMail
    .To = "skyyang@extendoffice.com" & RANGE("AVIVA!b12")
    .CC = "" & RANGE("AVIVA!c12")
    .BCC = ""
    .Subject = "NOUVEAU DOSSIER"
    .body = "Please check and read this document."
    .Attachments.Add Wb2.FullName
    .DISPLAY
    .Send
    End With
    Wb2.Close
    Kill FilePath & FileName & xFile
    Set OutlookMail = Nothing
    Set OutlookApp = Nothing
    Application.ScreenUpdating = True
    End Sub

    thank's for you help
  • To post as a guest, your comment is unpublished.
    Karan · 6 years ago
    Hi The macro works for me perfectly fine. I have never used macros before so, can anyone please put me in the right direction - I am trying to send this to more than one person but not sure how put extra email addresses in the "to" section of the macro.

    Thanks in advance
  • To post as a guest, your comment is unpublished.
    Jash · 6 years ago
    Hey I am using a automation process in my company I need to upgrade all my pc with the excel and outlook 2010 i have a code in windows xp with which i am mailing a sheet using outlook express the code is working fine in xp but now i need to upgrade it with windows 7 . I tried alot but i cant send the sheet so plz help
  • To post as a guest, your comment is unpublished.
    Jerry · 6 years ago
    Send single worksheet as an attachment from Excel with VBA code: Excellent VBA Code. Works GREAT !!! Thank you!!! :-)
    Instead of entering the To: & CC: e-mails manually, I want to pull the e-mail addresses from a separate worksheet called "E-Mail List". The (a1) has the "To" e-mail address and (b1) has the "CC" e-mail address. I know this is relatively simple to solve but I cannot figure out what I am doing wrong.

    Thank you everyone in advance.

    Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
    With OutlookMail
    .To = "skyyang@extendoffice.com"
    .CC = ""
    .BCC = ""
    .Subject = "kte features"
    .Body = "Please check and read this document."
    .Attachments.Add Wb2.FullName
    .Send
    End With
    Wb2.Close
    Kill FilePath & FileName & xFile
    Set OutlookMail = Nothing
    Set OutlookApp = Nothing
    Application.ScreenUpdating = True
    End Sub
  • To post as a guest, your comment is unpublished.
    Shel · 6 years ago
    I'm trying to use this code to send a single spreadsheet using a personally created template *.ost file that resides on the c:\ drive. Can't seem to figure out how to adapt the code above for that. Any pointers?
  • To post as a guest, your comment is unpublished.
    Janet · 6 years ago
    Hi, I am using Office 2010 and Windows 7.
    Thanks!
    • To post as a guest, your comment is unpublished.
      admin_jay · 6 years ago
      [quote name="Janet"]Hi, I am using Office 2010 and Windows 7.
      Thanks![/quote]
      Hello, this VBA is OK with Office 2010 in Window 7. Please make sure you have open your Outlook before running this VBA.
  • To post as a guest, your comment is unpublished.
    Janet · 6 years ago
    I am using the code above to send a single sheet as an excel attachment, the problem I am having, is that it is sending the whole workbook, not just a single worksheet.
    I only changed the "To", "Subject" and "Body" for the email.
    I am not sure what went wrong.
    Help Please! :sad:
    • To post as a guest, your comment is unpublished.
      admin_jay · 6 years ago
      [quote name="Janet"]I am using the code above to send a single sheet as an excel attachment, the problem I am having, is that it is sending the whole workbook, not just a single worksheet.
      I only changed the "To", "Subject" and "Body" for the email.
      I am not sure what went wrong.
      Help Please! :sad:[/quote]
      Hello, please tell me the version information of your Office and computer system.
  • To post as a guest, your comment is unpublished.
    Janet · 6 years ago
    I am using the second example above to send a single sheet out of the workbook, but it is sending the whole workbook. I copied the above example and the only part I changed was the email address.
    I am not sure what is wrong.
  • To post as a guest, your comment is unpublished.
    SomeOneVBA · 6 years ago
    Hi,

    I'm using this code but I have any issue when sending.
    It's not a big problem but I don't like it :-)

    I first auto save the file to a certain location via VBA before sending the file by mail. The file already has name ending on .xlsx

    When emailing the file, the attachement reads .xlsx.xlsx so it adds .xslx to the file.

    Does anybody know if I can it to ignore saving before sending it as attachment ? I already have it saved before sending...

    Thanks,
  • To post as a guest, your comment is unpublished.
    Jim Bristow · 6 years ago
    I am attempting to Send Multiple Name Ranges within given workbooks as PDF's via Outlook. Automating open and closing numerous workbooks. I am not certain how to modify stated code below which works great sending a worksheet with All new versions on Laptop. I sent multiple reports each night off my desk top Windows 7 Excel and Outlook 10 Adobe Acrobat Pro 10 and attempting to reconfigure to do same on laptop with upgraded versions of windows 8.1 Office 15 and adobe acrobat Xl.

    Your Recommended Codes for Sending Worksheets

    Sub SendWorkSheetToPDF()
    'Update 20131209
    Dim Wb As Workbook
    Dim FileName As String
    Dim OutlookApp As Object
    Dim OutlookMail As Object
    On Error Resume Next
    Set Wb = Application.ActiveWorkbook
    FileName = Wb.FullName
    xIndex = VBA.InStrRev(FileName, ".")
    If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
    FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
    Set OutlookApp = CreateObject("Outlook.Application")
    Set OutlookMail = OutlookApp.CreateItem(0)
    With OutlookMail
    .To = "jbristow1@gmail.com"
    .CC = ""
    .BCC = ""
    .Subject = "Outlook Code"
    .Body = "Please check and read this document."
    .Attachments.Add FileName
    .Send
    End With
    Kill FileName
    Set OutlookMail = Nothing
    Set OutlookApp = Nothing
    End Sub
    • To post as a guest, your comment is unpublished.
      SomeOneVBA · 6 years ago
      Jim,

      You need to add ; behind the email address and add an other, see example below :

      .To = "jbristow1@gmail.com; someone@gmail.com; onemoreperson@gmail.com"
  • To post as a guest, your comment is unpublished.
    ogunyemi · 6 years ago
    I have attached send to mail recipient, but is not activated when i click to send the excel. What am i doning wrong?
  • To post as a guest, your comment is unpublished.
    Niti Trivedi · 7 years ago
    Hi I want to send only selected cells through a command button in excel to receipts through outlook.
  • To post as a guest, your comment is unpublished.
    Chanda · 7 years ago
    When I use the VBA code to send as a pdf, the email sends fine, however there is no attachment. What am I doing wrong?

    Thanks,
    Chanda
    • To post as a guest, your comment is unpublished.
      HosWorker · 6 years ago
      Did you get an anser for this? Im also having the same difficulty.
  • To post as a guest, your comment is unpublished.
    Russ Streff · 7 years ago
    How do you add multiple recipients in the second example using VBA code?